我制作了这个 jsFiddle,它使用 CreateJS 中的 EaselJS 以定义的 60 FPS 帧速率更新简单的画布。舞台上只有一个简单的圆圈,因此我希望 FPS 标签在每个浏览器上都显示恒定的 60FPS。但这是我发现的:
铬:
FPS: 60.82474226801933
IE:
FPS: 60.095788862740555
火狐:
FPS: 43.2232327656598
为什么不在 Firefox 中也使用
60FPS
?我使用的是 Firefox 29.0.1。没有打开其他选项卡,清除缓存,窗口处于活动状态,没有其他应用程序正在运行。
如果有人仍然遇到此问题,请尝试删除所有对象上的阴影,因为 Firefox 在尝试在画布上渲染阴影时表现不佳。更多信息这里:
较慢的画布速度似乎是 Firefox 的趋势。
在我的机器上,我得到了稳定的 59-60,但为了获得最佳实践,您可能需要使用
requestAnimationFrame
,如 2astalavista 在设置 FPS 时提到的那样。要在 CreateJS 中执行此操作,只需将计时模式设置为 RAF_SYNCHED
:
createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;
createjs.Ticker.setFPS(60);
有关计时模式的文档:http://www.createjs.com/tutorials/Animation%20and%20Ticker/
更新的小提琴:http://jsfiddle.net/2247N/1/
10年零6个月过去了,还是慢!