协调 dragmove 不超过 30 FPS

Coordinating dragmove to not exceed 30 FPS

我有在 dragmove 上发生的动画。 但是,我不想浪费周期来做比我必须做的更多的计算。 本质上,我希望 dragmove 事件仅以合理的动画速率重绘。

换句话说,dragmove 事件以尽可能快的速度出现,但是我只想根据需要尽可能频繁地执行代码,以使用户流畅。

到目前为止,我想出的唯一解决方案是有一个单独的动画循环来执行重绘,而 ondragmove 只是设置我需要的变量。有更优雅的方法吗?

这样想。 30 FPS 是您的限制。无论您的限制如何,活动都将按自己的时间进行。

所以你的想法不是"un-elegant"。我会说,这是唯一的出路。

当你得到一个运动事件时,将它存储在本地,如果你已经存储了它,覆盖旧数据(这是忽略的部分)。从你的 30 FPS 循环中,对运动事件进行采样,如果你有任何东西,那就执行并销毁它。

就是这样。几乎是你自己的话。