1

我正在尝试使用画布和 javascript 记录用户的鼠标移动。通常,当浏览器有新的鼠标事件时,每个点都会被保存,但显然在回放它们时会导致问题。

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

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

谢谢。

4

1 回答 1

0

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

但即使在 Flash 中,您也可能不得不这样做。这里没有什么不同。

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

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

  • 在 Flash 中,您可以使用 fps 或使用 Timer 类来处理时间事件。

    在 JS 中,您有相同的 setInterval 和 setTimeout。

您可能不会从中获得任何好处,但同样,如果您希望保持更新鼠标坐标的类似逻辑,这里是如何:

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

interval = 1000 / fps; 

这是我为您准备的小提琴样本。

于 2012-12-30T06:45:33.790 回答