好的,这是一个非常理论化的问题: 我用HTML5 canvas元素编写动画。动画取决于鼠标移动(当鼠标停留=没有动画时)。对于渲染,我看到以下选项:
我倾向于支持选项2,因为只在需要时才会进行渲染。但我担心一件事:如果鼠标移动得太快(特别是在较慢的机器上),迭代可能会重叠并弄乱画布(请参阅下面的插图)。
所以我想到了一个解决方法:
但我也可以在这里看到一些问题:在我的插图中,鼠标移动的最后一帧可能被遗漏(因为它与之前的调用重叠)。此外,不断检查可能会降低性能(选项1中不需要)。
那么哪个选项最好?有人有这方面的经验吗?
链接到插图(无法发布图片):http://i.stack.imgur.com/WHLDQ.png
答案 0 :(得分:0)
我会选择2.选项1只是浪费资源。 不要担心选项2重叠迭代。当前一个事件仍在运行时,DOM不会调用mousemove事件。
答案 1 :(得分:0)
我使用两者的组合。
我有2个全局变量(mousex,mousey) 我在mousemove上更新这些
我有一个绘制循环,开始加载并重复每隔n秒
编辑:想法是分割视觉和工作代码(碰撞,得分......)
绘图循环每2秒触发一次,同时每次移动时都会更新鼠标移动
- 循环设置得那么慢,因为它显示了差异 例如: jsfiddle.net / 9jW3d /显示/``