2011-09-23 6 views
1

私は主にFlash AS3を使用して開発された教育用ソフトウェアで働いており、さまざまなユーザーによって異なる価値を示すクロノメーターがあります。 例:2人のユーザーが同時にクロノメーターを開始しますが、使用の数分後には値が異なります。リアルタイマーで正確なクロノメーターを作成するには?

現在の実装では、Timerクラスが使用されています。これは明らかに各コンピュータの平均速度が異なるためです。

私はすでに考えていますが、理論的な提案をしたいと思います。 ありがとうございます。

+1

Dateオブジェクトを使用してTimerクラスを結合します。 –

答えて

2

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

+0

私の解決策は、タイマーの開始時にunix時間を保存することでした。その後、タイマーイベントを使用してリフレッシュし、開始から何ミリ秒経過したかをカウントします。 –

関連する問題