requestAnimationFrame时间戳限制

问题描述 投票:0回答:2

我正在尝试基于requestAnimationFrame编写基本的游戏循环。对requestAnimationFrame的回调传递带有一个timestamp参数,据我所知,这是自页面加载以来的时间(以毫秒为单位)。建立游戏循环时,我假设每次调用requestAnimationFrame时,时间戳值始终会上升,基于此,我可以计算帧之间的时间增量。我唯一担心的是,如果应用程序长时间运行,则此时间戳值有时会达到其极限。

有这样的限制吗?要实现此目标,必须花费多少现实时间?达到限制后,时间戳值将如何处理?

javascript requestanimationframe
2个回答
0
投票

不用担心。

传递给requestAnimationFrame回调的是DOMHighResTimestamp,实际上其来源设置为窗口("the time when the browsing context is first created")中的页面加载,实际上它表示此后的毫秒数。

根据the specs,大约有[[285,616年才开始失去精度。


0
投票
我不认为自页面加载以来返回毫秒,它返回DOMHighResTimeStamp“ [DOMHighResTimeStamp开始执行回调函数时]。

requestAnimationFrame()

该为动画更新动画时调用的函数下次重涂。回调函数只传递一个参数,一个From MDN与返回的类似DOMHighResTimeStamp,指示何时performance.now()开始执行回调函数。

尽管这是个问题,所以我也要说,我不会担心这种情况下的溢出,因为该单位是requestAnimationFrame(),我很确定这意味着64位精度。击中double用了60年,并且有32位的精度。我的数学可能已经关闭,但是我只是不必担心溢出。当时间戳记开始分解时,我们可能会遇到更大的问题。

© www.soinside.com 2019 - 2024. All rights reserved.