如何在特定时间显示按钮,然后在Actionscript 3中再次消失?

时间:2014-10-29 01:47:01

标签: actionscript-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);

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);
    }
}

如果有人能帮助我做到这一点,这将是非常棒的。谢谢!

1 个答案:

答案 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'循环 - 它们并不完全符合你的想法,如果不增加你在循环中改变的东西,很容易让它们进入无限的重复。