我们如何在计时器运行时重置repeatCount属性

时间:2012-05-03 13:27:52

标签: actionscript-3

如何在计时器运行时重置repeatCount属性。

在游戏中,倒数计时器开始以120运行。如果用户点击“提示”按钮,我需要将时间减少5秒并开始显示倒计时

现在的问题是倒数计时器减少了五次,但计时器一直运行到“-n * 5”。 “n”是提示按钮单击的次数。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

以下是解决问题的方法之一。保持与Timer的repeatCount分开的定时器计数,并在该单独的计数器达到0时停止,而不是在TimerComplete事件发生时停止。

public var t:Timer;
public var count:int = 120;

protected function init(event:FlexEvent):void
{   
    t = new Timer(1000,count);
    t.addEventListener(TimerEvent.TIMER, onTimer);
    t.start();
}

protected function onTimer(evt:TimerEvent):void
{
    count--;
    //display count as time remaining

    if (count <= 0)
    {
        //out of time!
        t.stop();
    }
}

protected function onHint(evt:MouseEvent):void
{
    count-=5;
    //update time or wait for next tick
}