2011-11-04 94 views
0

在迷你flash游戏中,我有几个不同的级别选择按钮,它们都附加到一个“levelChange()”函数,我只是想知道是否有一个属性存储哪个按钮被按下或者如果不确定如何确定哪个被按下。在actionscript中识别按钮按下

感谢

+0

您可能会澄清,您是在Actionscript 3还是2中执行此操作?另外,如果你在2中进行,你是否将脚本直接附加到按钮上?我会为AS3提供一个答案,但如果这个问题是关于AS2的话可能没有帮助。 –

+0

对不起,这是与AS3。 – Sam

回答

0

尝试MouseEvent例子的currentTarget属性:

function buttonClick(event:MouseEvent):void 
{ 
    trace(event.currentTarget); 
} 

我建议您在函数外部存储您的按钮的变量,像这样:

var levelOne:MovieClip = levelOne; 

所以,你可以稍后呼吁他们像这样:

function buttonClick(event:MouseEvent):void 
{ 
    if (event.currentTarget == levelOne) { 
      trace("level one selected"); 
    else if (event.currentTarget == levelTwo) { 
      trace("level two selected"); 
    } 
} 
+0

这正是我写的,除了你正在使用IF语句而不是开关。 –

+0

@DustinSparks您搜索的名称与山姆无法工作的实例名称相对应,我认为'currentTarget'应该突出显示。在一天结束的时候,山姆发现它很有用。 –

0

如果你使用AS3你可以在你levelChange()函数中添加一个switch语句。

例如....如果您有2个按钮,一个实例名称为“level1”,另一个为“level2”。

function levelChange(me:MouseEvent):void 
{ 
    switch(me.currentTarget.name) 
    { 
     case "level1": 
     // Go to Level 1 here. 
     case "level2": 
     // Go to Level 2 here. 
    } 
} 
+0

嗯,它似乎没有工作。没有语法错误,但按钮不起作用 – Sam