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 に答える