我一直在制作一个出现日历,当你按下按钮时,门会打开。我已经创建了一个变量来控制哪个日期可以在名为'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'语句,但它似乎不起作用。感谢
答案 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。非常有用和友好的图形和诸如此类。