允许通过true或false变量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)
}

我不知道如何告诉程序只有在允许打开的情况下才能打开门。我尝试过"如果"语句,但它似乎不起作用。感谢

好吧,你可以把"if"循环放在函数内部,就像上面已经建议的那样:

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

但是,小蜘蛛感觉到刺痛。我会选择添加一个ENTER_FRAME侦听器,这样当一天发生变化时,你就会自动更改每天/打开的门的布尔值:

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"。然后,你可以为每个门设置一个监听器/函数,用i顺序命名,以保持一切有序:

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

这就是我完成任务的方式。这是很多重复的代码,所以从更高级的用户那里肯定会有一些更优雅的方法来做到这一点。此外,如果要设置门的动画,请查找GreenSock TweenSite。非常有用和友好的图形等等。

最新更新