2

flash.utils.Timer 对象的事件 TIMER 是否总是在 TIMER_COMPLETE 之前调度?

在第二场活动期间,我取消了在第一场活动期间需要的东西;所以他们的顺序是最重要的。我检查了文档,并不能保证他们的调度顺序。

在我所做的测试中似乎是这种情况,但我不想在没有先确认的情况下公开发布软件。

4

2 回答 2

3

You can avoid this problem by using TimerEvent.TIMER only:

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

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

我几乎肯定是这种情况,因为代码似乎在播放器本身中,我认为您无法从源头获得合法确认,但是我自己和从文档如何阅读听起来好像 TIMER 事件总是在完成事件之前被调度

timerComplete 在完成 Timer.repeatCount 设置的请求数时调度。

timer 每当 Timer 对象达到根据 Timer.delay 属性指定的时间间隔时调度。

所以我想象 timerComplete 在它接收到足够的计时器事件后调度, currentCount 等于重复计数,然后调度 timerComplete ,但是如果不能查看代码,任何人都不可能完全确认这一点。可能您可以查看 Gnash 源以了解播放器的实现如何处理它,但在普通 Flash Player 中不一定相同。

于 2012-07-07T15:27:41.533 回答