我正在尝试制作一款涉及在正确的时间按键/点击按钮的游戏。我希望隐藏按钮/指示器直到正确的时间,但是在显示它时遇到一些麻烦。到目前为止,这是我的代码。
var count:Number = 5;
var myTimer:Timer = new Timer(1000, count);
myTimer.addEventListener(TimerEvent.TIMER, countdown);
myTimer.start();
function countdown(event:TimerEvent): void {
timer_txt.text = String((count)-myTimer.currentCount);
}
btnthing.addEventListener(MouseEvent.CLICK, btnclick);
btnthing.visible=false;
while (((count)-myTimer.currentCount)==1) {
btnthing.visible=true;
}
function btnclick(e:MouseEvent): void {
if (((count)-myTimer.currentCount) == 1) {
myTimer.stop();
btnthing.visible=false;
time_txt.text = "Yay!";
} else {
myTimer.stop();
gotoAndStop(3);
}
}
到目前为止,我的代码启动了计时器并显示倒计时。如果我删除隐藏/显示按钮的部分,一切正常。
var count:Number = 5;
var myTimer:Timer = new Timer(1000, count);
myTimer.addEventListener(TimerEvent.TIMER, countdown);
myTimer.start();
function countdown(event:TimerEvent): void {
timer_txt.text = String((count)-myTimer.currentCount);
}
btnthing.addEventListener(MouseEvent.CLICK, btnclick);
function btnclick(e:MouseEvent): void {
if (((count)-myTimer.currentCount) == 1) {
myTimer.stop();
btnthing.visible=false;
timer_txt.text = "Yay!";
} else {
myTimer.stop();
gotoAndStop(3);
}
}
如果有人能帮助我做到这一点,这将是非常棒的。谢谢!
答案 0 :(得分:1)
您没有正确使用'while'循环。将其更改为'if'语句并将其放在倒计时函数中,如下所示:
function countdown(event:TimerEvent): void
{
timer_txt.text = String((count)-myTimer.currentCount);
if (((count)-myTimer.currentCount)==1) {
btnthing.visible=true;
}
}
这样你的代码就会在计时器的每个tick上测试currentCount,最后对它做一些事情。 阅读'while'循环 - 它们并不完全符合你的想法,如果不增加你在循环中改变的东西,很容易让它们进入无限的重复。