1

キャンバスと JavaScript を使用して、ユーザーのマウスの動きを記録しようとしています。通常、ブラウザーから新しいマウス イベントが発生すると、各ポイントが保存されますが、これにより、それらを再生するときに問題が発生することは明らかです。

このため、マウスの動きを毎秒一定のフレーム数で記録するという考えがありましたが、マウスはイベントベースであるため、これをどのように達成できるかはよくわかりません (現在の位置を要求する方法はありませんか?)。簡単に言えば、マウスの位置を一定の PFS で記録して、一定の FPS で再び再生したいのです。イベント ベースのマウス位置で、この「1 秒あたりの一定フレーム数」を達成するにはどうすればよいですか?

この質問には簡単な答えがあると確信しています.長年のフラッシュユーザーとして、フレームはすべてのベースとして機能する主要なものの1つでした。今、キャンバスで毎日直面しているより抽象的な概念を理解するのに苦労しています。

ありがとう。

4

1 に答える 1

0

まあ全点保存の問題点はブラウザの性能低下だと思います。

しかし、フラッシュでもそうしなければならなかったかもしれません。ここでは何も違いはありません。

  • Flash では、マウス移動イベントをリスナーとして追加している場合があります。

    JS でも、mousemove ハンドラをオブジェクトに直接アタッチできます。

  • Flash では、fps を使用するか、時間イベントに Timer クラスを使用します。

    JS では、同じものに対して setInterval と setTimeout があります。

これで何も得られないかもしれませんが、マウス座標を更新する同様のロジックを維持したい場合は、次のようにします。

JS はミリ秒単位の時間間隔が必要なので、

interval = 1000 / fps; 

これが私があなたのために作ったサンプルのフィドルです。

于 2012-12-30T06:45:33.790 に答える