我正在尝试使用canvas和javascript记录用户的鼠标移动。通常情况下,当浏览器出现新的鼠标事件时,会保存每个点,但显然这会在重播时导致问题。
出于这个原因,我有这个想法,用每秒恒定帧记录鼠标移动但我真的不知道如何实现这一点,因为鼠标是基于事件的(无法请求当前位置?)。简单地说,我想在一个恒定的PFS中记录鼠标位置以再次使用常量FPS播放它们。如何基于事件的鼠标位置实现这种“每秒恒定帧数”?
我很确定这个问题有一个简单的答案。作为一个长期的Flash用户,框架是作为一切基础的主要事物之一;现在我很难用画布每天都面对更抽象的概念。
感谢。
答案 0 :(得分:0)
我相信保存所有点的问题是浏览器的性能下降。
但即使是闪光灯,你也可能不得不这样做。这里没有什么不同。
在Flash中,您可能已将鼠标移动事件添加为侦听器。
在JS中你也可以直接将mousemove处理程序附加到对象。
在Flash中,您有fps或者您使用Timer Class进行时间事件。
在JS中你有setInterval& setTimeout也是如此。
你可能从中获益,但同样,如果你想保持更新鼠标坐标的类似逻辑,请按以下步骤操作:
JS需要时间间隔(以毫秒为单位),所以
interval = 1000 / fps;
这是我为你酿造的sample fiddle。