我有一个函数可以计算在 X 轴和 Y 轴上移动的各种对象的动画中的下一帧[我称之为frameRender()
],还有一个函数将生成的帧应用于对象[我称之为frameDisplay()
]。对象不只是从 A 点移动到 B,它们不断移动,总是接收新的目标坐标。我使用setInterval()
带有1000/frameRate
间隔的 a ,但这似乎根本不起作用,因为浏览器没有准确的时间。
问题是:如何确保动画具有恒定的帧速率,并在所有浏览器、所有系统上以相同的速度运行?我已经尝试了所有方法,即使在不同的浏览器上似乎也无法获得准确的结果(我在 Firefox 和 Chrome 上进行测试,Chrome 通常显示速度要快得多)。
frameDisplay()
结果应该是:当它播放慢时,动画间隔应该首先减少,然后如果DOM显示慢,则尝试跳过一些帧[通过跳过],直到它正确播放。当它快速播放时,动画间隔应该增加,使动画以正确的速度播放。
但是您如何在所有这些中保持一致性,因为您无法始终确定浏览器何时会变慢,或者它们何时会执行得更快。例如,如果有巨大的运动尖峰,我们减小间隔以保持帧率稳定,然后突然大部分运动物体停止或不动,它会突然执行得非常快!
有任何想法吗?