画布中动画的速度取决于js引擎的速度,有没有办法让动画在所有浏览器中显示相同?

时间:2011-05-14 01:29:45

标签: javascript html5 animation canvas

这是画布动画的链接 http://www.html5canvastutorials.com/advanced/html5-canvas-linear-motion-animation/

现在就像常规的js动画一样,它的速度取决于浏览器与js的速度。 所以我的问题是,帆布是否有办法将它们全部带到同一水平?或者已经有解决方案吗?

2 个答案:

答案 0 :(得分:1)

问题在于,在Javascript中,setInterval()并不能为您提供可靠的计时,特别是如果浏览器在规定的时间内更新帧速度太慢。

因此,对于每个帧,您必须计算自上一帧以来经过的时间,并使用它来更新您的位置。

这是一个实例:

http://jsfiddle.net/txWqJ/1/

答案 1 :(得分:0)

如果您希望画布以相同的速度渲染,请使用

setTimeout(doMoreRendering, 1000 / fps)