0

我正在创建一个使用设置为随机数的计时器的游戏。计时器计数到这个数字然后游戏结束。我希望玩家可以选择在计时器用完后重播,但我无法确定如何执行此操作。这是它现在的样子。

var age:int = Math.floor(Math.random()*100)+1;
trace(age);
var upCounter:int = 1;
timer();

//timer
function timer(){
var myTimer:Timer = new Timer(1000, age);
myTimer.addEventListener("timer", timerHandler);
myTimer.start();
}

//displays timer and triggers outcome function
function timerHandler(event:TimerEvent):void{
    if ( upCounter < age) {
          trace(upCounter);
          age_txt.text = String(upCounter);
          upCounter++;
          }
          else{
            outcome();
          }
}

问题是“age”和“upCounter”变量是全局变量,如果我将它们放在“startGame”函数中,我无法将它们传递给“timerHandler”。如果我不将它们放在“startGame”函数中,我不知道如何重新启动游戏。谢谢。

4

1 回答 1

0

您已将计时器定义为迭代年龄的值,对吗?

那么为什么不添加一个 TIMER_COMPLETE 事件呢?

myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, outcome);

function outcome(e:TimerEvent):void
{
    var myTimer:Timer = e.target as Timer;
    myTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, outcome);

    // prompt to play again or whatever goes here.
}

在您的 TIMER 事件处理程序中,只需将需要发生的事情放在计时器滴答上。

于 2013-05-05T21:57:11.610 回答