私は主に Flash AS3 を使用して開発された教育用ソフトウェアで作業しており、さまざまなユーザーによってさまざまな値を示すクロノメーターがあります。例: 2 人のユーザーが同時にクロノメーターを開始しましたが、数分間使用すると、値が異なります。
現在の実装では Timer クラスを使用しているため、明らかに各コンピューターの平均速度が異なるため、これが発生します。
私はすでに考えを持っていますが、いくつかの理論的な提案をしたいと思います。前もって感謝します。
私は主に Flash AS3 を使用して開発された教育用ソフトウェアで作業しており、さまざまなユーザーによってさまざまな値を示すクロノメーターがあります。例: 2 人のユーザーが同時にクロノメーターを開始しましたが、数分間使用すると、値が異なります。
現在の実装では Timer クラスを使用しているため、明らかに各コンピューターの平均速度が異なるため、これが発生します。
私はすでに考えを持っていますが、いくつかの理論的な提案をしたいと思います。前もって感謝します。
Timer クラスはあまり正確ではありません。ドキュメントから: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Timer.html
SWF ファイルのフレームレートまたはランタイム環境 (使用可能なメモリやその他の要因) によっては、ランタイムがわずかにオフセットされた間隔でイベントを送出する場合があります。たとえば、SWF ファイルが 100 ミリ秒間隔である 10 フレーム/秒 (fps) で再生するように設定されていて、タイマーが 80 ミリ秒でイベントを起動するように設定されている場合、イベントは 100 ミリ秒間隔近くでディスパッチされます。 . メモリを集中的に使用するスクリプトも、イベントを相殺することがあります。
アプリケーションの開始からの相対時間を探している場合は、flash.utils.getTimer() を使用します。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/package.html#getTimer%28%29
より洗練されたタイミングを行いたい場合は、Date クラスを使用できます。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Date.html