2

flash.utils.TimerオブジェクトのイベントTIMERは、常にTIMER_COMPLETEの前にディスパッチされますか?

2回目のイベントでは、1回目のイベントで必要なものを無効にします。したがって、それらの順序が最も重要です。ドキュメントを確認しましたが、発送順序の保証はありません。

私が行ったテストでは、これが当てはまるようですが、最初に確認せずにソフトウェアを公開したくありません。

4

2 に答える 2

3

この問題は、TimerEvent.TIMERのみを使用することで回避できます。

private function onTimer(event:TimerEvent)
{
    // ...

    if (timer.currentCount == timer.repeatCount) {
        // timer is complete
    }
}
于 2012-07-07T14:52:48.083 に答える
1

コードはプレーヤー自体にあるように見えるので、私はこれが事実であるとほぼ確信しています。正当な確認を得るためにソースで取得できるとは思いませんが、私は常にこれが自分自身とドキュメントがどのようにそれを読むかは、完全なイベントの前にTIMERイベントが常にディスパッチされるかのように聞こえます

timerCompleteTimer.repeatCountによって設定された要求の数を完了するたびにディスパッチされます。

timerTimerオブジェクトがTimer.delayプロパティに従って指定された間隔に達するたびにディスパッチされます。

したがって、currentCountが繰り返し回数と等しくなるのに十分なタイマーイベントを受信した後にtimerCompleteがディスパッチされ、timerCompleteがディスパッチされると想像しますが、コードを確認できなければ、これを完全に確認することはできません。おそらく、Gnashソースを見て、プレーヤーのその実装によってどのように処理されるかを確認できますが、通常のFlashPlayerでは必ずしも同じではありません。

于 2012-07-07T15:27:41.533 に答える