动作脚本3计时器不停止

时间:2013-02-15 13:16:59

标签: actionscript-3 timer

好的,所以我是一名非常业余的AS3程序员。我有一个计时器设置,45秒后它应该移动到场景6,但是如果它调用hitTestObject,它应该停止并在场景重新加载时从0重新加载。编辑:我知道这段代码可能是非常糟糕的编码,我也在提供有关如何修复此代码的提示。这是我的代码:

 var myTimer:Timer = new Timer(1000, 1); // 1 second
myTimer.addEventListener(TimerEvent.TIMER, onEnterFrame);
myTimer.start(); 

{主要功能}

function onEnterFrame(e:Event):void {

var startTime:int=getTimer();


var currentTime:int=getTimer();
trace(currentTime);

if (currentTime>45000){
gotoAndStop(1, "Scene 6");

}
}

我的问题是,计时器在遇到测试对象时会继续运行,所以当重新加载场景3时,计时器就会继续运行。因此,无论你死多少次,你只需要玩45秒。应该是一旦你死了,你重新加载场景时重新加载计时器3.我能做什么的任何想法?

1 个答案:

答案 0 :(得分:0)

希望这会有所帮助:

var myTimer:Timer;

function resetTimer():void
{
    // check if timer already initialize
    if(myTimer != null)
    {
        // just reset
        myTimer.stop();
        myTimer.reset();
    }
    else
    {
        // initialize timer and set a 45 sec delay;
        myTimer = new Timer(45*1000,1);
        myTimer.addEventListener(TimerEvent.TIMER, handleTimerTick);
    }    

    myTimer.start();

}

function handleTimerTick(event:TimerEvent):void
{ 
    // stop and null timer;
    myTimer.stop();
    myTimer.removeEventListener(TimerEvent.TIMER, handleTimerTick);
    myTimer = null;

    // goto my 6th scene 
    gotoAndStop(1, "Scene 6");
}

// whenever a hit test is performed and a timer reset is needed just call
resetTimer();