Actionscript 3倒数计时器不会在文本字段中显示时间,当计时器达到0时没有任何反应

时间:2011-01-24 17:18:12

标签: flash actionscript-3 timer textfield

我使用为AS2编写的教程在AS3中创建了一个游戏,但我无法让计时器正常工作。游戏包含3帧,开始屏幕,游戏循环和结束屏幕。计时器从第2帧开始,并向下计数(用跟踪测试)。当计时器达到0时,我想转到第3帧,这是最终的游戏画面,但我的代码无效。

var fl_SecondsToCountDown:Number = 30;

var fl_CountDownTimerInstance:Timer = new Timer(1000, fl_SecondsToCountDown);
fl_CountDownTimerInstance.addEventListener(TimerEvent.TIMER, fl_CountDownTimerHandler);
fl_CountDownTimerInstance.start();
theTimer.text = String(fl_SecondsToCountDown);

function fl_CountDownTimerHandler(event:TimerEvent):void
{

    if(fl_SecondsToCountDown == 0){;
        gotoAndPlay(3);
    }else{

    trace(fl_SecondsToCountDown + " seconds");
    fl_SecondsToCountDown--;
    }
}

我的第二个问题是ny计时器(theTimer)没有显示时间。

编辑:

var running:Boolean = new Boolean();
running = false;
var time:Number = new Number();
var fl_SecondsToCountDown:Number = 30;
var fl_CountDownTimerInstance:Timer = new Timer(1000, fl_SecondsToCountDown);
fl_CountDownTimerInstance.addEventListener(TimerEvent.TIMER, fl_CountDownTimerHandler);
fl_CountDownTimerInstance.start();

function fl_CountDownTimerHandler(event:TimerEvent):void
{
    time=fl_SecondsToCountDown;

    if(time == 0){
        running = false;
        trace(running);
        gotoAndStop(3);
    }else{

    trace(fl_SecondsToCountDown + " seconds");
    fl_SecondsToCountDown--;
    theTimer.text = String(fl_SecondsToCountDown);

    }
}

1 个答案:

答案 0 :(得分:0)

请务必在theTimer函数中更新fl_CountDownTimerHandler,否则只会在初始化时更新。

我的猜测是你的最后一次倒计时检查没有被解雇,因为当fl_SecondsToCountDown已经为0时,它永远不会再次运行该事件。使用trace添加更多检查,以便更容易找出正在发生的事情。