0

好的,所以我是一个非常业余的 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 时,计时器会重新加载。关于我能做什么的任何想法?

4

1 回答 1

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();
于 2013-02-15T13:26:59.447 回答