【发布时间】:2011-10-24 14:56:43
【问题描述】:
是否有其他方法可以在不使用 setInterval() 或 setTimeout() 的情况下为在画布中移动的对象设置动画?
原因是因为在使用 useInterval() 时它会随着时间的推移而滞后。我不知道为什么它也滞后。
我尝试删除 setInerval(),一切正常,没有延迟,但没有动画。
【问题讨论】:
是否有其他方法可以在不使用 setInterval() 或 setTimeout() 的情况下为在画布中移动的对象设置动画?
原因是因为在使用 useInterval() 时它会随着时间的推移而滞后。我不知道为什么它也滞后。
我尝试删除 setInerval(),一切正常,没有延迟,但没有动画。
【问题讨论】:
有谁知道是否有其他方法可以在不使用 setInterval() 或 setTimeout() 的情况下为在画布中移动的对象设置动画。
是的。还有requestAnimationFrame,但不是在所有浏览器上。
此外,尝试将间隔设置为更小和更大的值,看看是否可以减少跳跃。
另外, 确保您的绘图循环中发生的事情尽可能少。延迟可能是您自己的错。 Canvas 对性能方面非常敏感,它是否保持快速运行取决于您。
【讨论】:
定义滞后,你的意思是有点神经质吗?因为如果是这样,您设置的间隔是错误的,我使用这两种方法为大量画布设置了动画,并且 afaik 没有其他方法。
【讨论】: