好的,所以我是一名非常业余的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.我能做什么的任何想法?
答案 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();