2015-11-29 58 views
0

我一直在制作出现日历,当你按下按钮时门会打开。如果日期正确,我创建了一个变量来控制你可以在'AllowOpen'上打开它的日期。点击时我还创建了一个框架功能。允许通过真或假变量按下按钮AS3

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

我无法弄清楚如何让程序打开门,如果允许打开是真实的。我已经尝试了'如果'的声明,但它似乎并没有工作。由于

+1

您是否尝试过:'if(AllowOpen){gotoAndStop(2); ''? – akmozo

+1

此外,你可以看看[这里](http://www.adobe.com/devnet/actionscript/learning.html)来学习AS3基础知识...... – akmozo

回答

1

OK,你可以把“如果”环路已经正是如此建议在函数内部:

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

“我”是,你会宣称存储从一个整数另一个变量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。非常有用和友好的图形和whatnot。