我是动作脚本3(和这个网站)的新手,我很难做一些可能非常基本的事情。我所拥有的是舞台上的两个电影片段,它们将充当按钮。我把它们命名为btn1和btn2。我要做的是创建一个这些“按钮”的数组,并为每个按钮添加一个事件监听器。单击一个按钮时,将转到特定框架。单击另一个时,您将转到另一个框架。但是,当我单击btn1时,我会在输出窗口中“转到第2帧”,这是不正确的。我不确定我做错了什么。
在第1帧我有以下内容:
import flash.events.MouseEvent;
import flash.events.Event;
stop();
var buttons:Array = ["btn1","btn2"];
for (var i:int =0; i < buttons.length; i++)
{
var buttonName:Object = buttons[i];
this.addEventListener(MouseEvent.CLICK, onButtonClicked);
trace(buttonName);
}
function onButtonClicked(event:MouseEvent):void
{
switch (buttonName)
{
case "btn1" :
trace("go to frame 1");
break;
case "btn2" :
trace("go to frame 2");
break;
default :
break;
}
}
答案 0 :(得分:0)
MouseEvent.target
为您提供了在事件处理程序中调度您处理事件的对象,这应该很容易使用按钮id属性(如果已设置)或通过对象比较来识别它
使用id
的示例function onButtonClicked(event:MouseEvent):void
{
switch (event.target.id)
{
case btn1.id:
//do something
break;
case btn2.id:
//do something
break;
default:
//do something
break;
}
}
使用对象比较的示例
function onButtonClicked(event:MouseEvent):void
{
if (event.target === btn1)
{
//do something
}
else if (event.target === btn2)
{
//do something
}
}