如果计时器上的语句不起作用

时间:2012-11-09 12:17:51

标签: actionscript if-statement timer

我在创建if语句时遇到问题。不明白为什么它不起作用所以希望一些新鲜的眼睛可能有所帮助!

我有一个计时器:

var delayTimer:Timer = new Timer(9000,1);   

另一个框架上的函数

delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timesUp);
function timesUp(evt:TimerEvent):void
{
   if (delayTimer.currentCount == 9)
   {
      trace.("which it does")
      incorrect.stop();
      timesup.play();
   }
   else
   {
      incorrect.play();
      timesup.stop();
   }
}

我的示踪剂似乎没有增加,所以显然我的功能出了问题。 incorrecttimesup都是我需要在计时器= 9时播放的影片剪辑。因此,如果计时器用完,它将播放影片剪辑times up而不是incorrect

我有一些其他的if else语句使用相同的结构但是有效,所以我对此感到有些困惑。

1 个答案:

答案 0 :(得分:2)

Timer.currentCount “[t]自定时器开始以零点开始后总计被触发的次数”。正如您在构造函数中指定的那样,计时器重复一次,currentCount永远不会达到9的计数。

您可能想要做的是在计时器实际耗尽时,即在9000毫秒的延迟之后简单地触发。这正是TIMER事件的作用。当延迟结束并且计时器触发时它将触发。在您的情况下,事件将触发一次,因为您指定计时器仅运行一次(它将在currentCount0时触发一次)。 TIMER_COMPLETE事件将在所有重复结束后触发一次,在您的情况下,直接在TIMER事件被触发后。

回应你的评论,我就是这样做的(以及我如何理解你的目的):

var delayTimer:Timer = new Timer(9000, 1);
delayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timesUp);

function timesUp (evt:TimerEvent):void
{
    // after the timeout
    incorrect.stop();
    timesup.play();
}

// start the timer
delayTimer.start();

// start the animation, that occurs while the timer runs
incorrect.play();
timesup.stop();