我正在创建一个使用定时器设置为随机数的游戏。计时器计数到这个数字然后游戏结束。我希望玩家在计时器用完后可以选择重播,但我无法确定如何执行此操作。这就是现在的样子。
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”函数中,我不知道如何重启游戏。感谢。
答案 0 :(得分: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事件处理程序中,只需将需要发生的事情放在计时器上。