允许按 true 或 false 变量 AS3 按下按钮

Allow a button press by true or false variable AS3

我一直在制作一个降临节日历,当你按下按钮时,门就会打开。我创建了一个变量来控制您可以在哪个日期打开它们,如果它是正确的日期,则称为 'AllowOpen'。我还创建了一个函数,可以在单击时转到某个框架。

var AllowOpen: Boolean = false;
if (Day == 1) {
    AllowOpen = true;
} else {
    AllowOpen = false;
}

button1.addEventListener(MouseEvent.MOUSE_DOWN, click);

function click(event:MouseEvent):void
{
    gotoAndStop(2)
}

我不知道如何告诉程序只在 allow open 为 true 时才开门。我试过 'if' 语句,但它似乎不起作用。谢谢

好的,您可以将 'if' 循环放在函数中,正如已经建议的那样:

function click(e:Event):void{
    if (AllowOpen) {
        gotoAndStop(2);
    }
}

但是,小蜘蛛感到刺痛。我会选择添加一个 ENTER_FRAME 侦听器,以便随着日期的变化,您会自动更改每个 day/door 的布尔值以打开:

var my_boolean_var_i:boolean = false;

addEventListener(Event.ENTER_FRAME, checkDay);
function checkDay(e:Event):void{
    if(Day == day_i){
        my_boolean_var_i = true;
    }
}

"i" 将是另一个变量,您将声明它根据日期存储从 1 到 28 的整数,然后是一组变量 'day + i'。然后你可以为每扇按顺序命名的门设置一个 listener/function i 以保持一切井井有条:

door_i.addEventListener(Event.MOUSE_CLICK, click_i);
function click_i(e:Event):void{
    if(my_boolean_var_i == true){
        gotoAndStop(2);
    }
}

这就是我解决任务的方式。这是很多重复的代码,所以一定会有一些更高级的用户可以用更优雅的方式来做到这一点。此外,如果您想为门设置动画,请查找 GreenSock TweenLite。对图形等非常有用和友好。