允许按下按真或假变量AS3的按钮

时间:2015-11-29 16:55:13

标签: actionscript-3 flash if-statement boolean flashdevelop

我一直在制作一个出现日历,当你按下按钮时,门会打开。我已经创建了一个变量来控制哪个日期可以在名为'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)
}

如果允许open为true,我无法理解如何告诉程序只打开门。我尝试了'if'语句,但它似乎不起作用。感谢

1 个答案:

答案 0 :(得分:1)

好的,你可以把' 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'。然后,您可以为每个按顺序命名的门设置一个监听器/函数,以保持一切有条理:

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

这是我解决任务的方式。它有很多重复的代码,因此必须有一些更优雅的方法来从更高级的用户那里做到这一点。此外,如果您想要为门设置动画,请查看GreenSock TweenLite。非常有用和友好的图形和诸如此类。