0

次のコードがあります。

var timer:Timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER, someListener);
timer.start();

TimerEvent.TIMER が 3000ms の遅延 (3010、3050 などではなく) の前または正確にディスパッチされることは保証されていますか?

私のテストでは、TimerEvent.TIMER が常に「遅延」ミリ秒の前または正確にディスパッチされることが示されていますが、ドキュメントでそれに関する詳細情報を見つけることができませんでした。

ありがとう。

4

1 に答える 1

1

いいえ、正確ではありません。タイム スライスは、驚くほど複雑なプロセスです。

以下にいくつかのリソースを示します。

つまり、AVM は、システム コード、ユーザー コード、およびフレーム レンダリングの実行をできるだけ高速に調整しようとしますが、どのプロセスがどの優先度 (およびその後の処理時間) を取得するかを決定する必要があります。タイマーの精度に影響を与えるのは、これらの決定です。つまり、正確な場合もあれば、そうでない場合もあります。

基本的に、投げれば投げるほど精度が落ちます。

于 2013-06-16T09:50:52.163 に答える