X 軸と Y 軸の両方で移動するさまざまなオブジェクトのアニメーションの次のフレームを計算する関数 [私はそれを呼び出しますframeRender()
] と、その結果のフレームをオブジェクトに適用する関数[私はそれを呼び出しますframeDisplay()
] があります。オブジェクトはポイント A から B に移動するだけでなく、絶えず移動し、常に新しいターゲット座標を受け取ります。setInterval()
間隔を空けて aを使用してい1000/frameRate
ますが、ブラウザには正確なタイミングがないため、まったく機能していないようです。
問題は、アニメーションのフレーム レートが一定で、すべてのブラウザ、すべてのシステムで同じ速度で実行されるようにするにはどうすればよいかということです。私はすべてを試しましたが、異なるブラウザーでも正確な結果が得られないようです (私は Firefox と Chrome でテストしましたが、Chrome は通常、はるかに高速に表示されます)。
frameDisplay()
結果は次のようになります: 再生が遅い場合、最初はアニメーションの間隔が短くなり、DOM の表示が遅い場合は、正しく再生されるまでいくつかのフレームを [スキップして] スキップします。再生が速くなると、アニメーションの間隔が長くなり、アニメーションが正しい速度で再生されます。
しかし、ブラウザーがいつ遅くなったり、いつ高速に動作するかを常に確認できるわけではないため、これらすべての一貫性を維持するにはどうすればよいでしょうか。たとえば、動きに大きなスパイクがあり、フレーム レートを一定に保つために間隔を短くすると、突然ほとんどの動くオブジェクトが停止するか、ほとんど動かなくなると、突然、非常に高速に実行されます。
何か案は?