鼠标事件和FPS

时间:2012-12-30 05:30:45

标签: javascript canvas html5-canvas

我正在尝试使用canvas和javascript记录用户的鼠标移动。通常情况下,当浏览器出现新的鼠标事件时,会保存每个点,但显然这会在重播时导致问题。

出于这个原因,我有这个想法,用每秒恒定帧记录鼠标移动但我真的不知道如何实现这一点,因为鼠标是基于事件的(无法请求当前位置?)。简单地说,我想在一个恒定的PFS中记录鼠标位置以再次使用常量FPS播放它们。如何基于事件的鼠标位置实现这种“每秒恒定帧数”?

我很确定这个问题有一个简单的答案。作为一个长期的Flash用户,框架是作为一切基础的主要事物之一;现在我很难用画布每天都面对更抽象的概念。

感谢。

1 个答案:

答案 0 :(得分:0)

我相信保存所有点的问题是浏览器的性能下降。

但即使是闪光灯,你也可能不得不这样做。这里没有什么不同。

  • 在Flash中,您可能已将鼠标移动事件添加为侦听器。

    在JS中你也可以直接将mousemove处理程序附加到对象。

  • 在Flash中,您有fps或者您使用Timer Class进行时间事件。

    在JS中你有setInterval& setTimeout也是如此。

你可能从中获益,但同样,如果你想保持更新鼠标坐标的类似逻辑,请按以下步骤操作:

JS需要时间间隔(以毫秒为单位),所以

interval = 1000 / fps; 

这是我为你酿造的sample fiddle