我想知道如何在一个监听器中编写不同对象的click mouseevent,如果可能的话。
我想要做的是让所有按钮点击都具有通用性,如:
stage.addEventListener(MouseEvent.CLICK,clicker);
function clicker (e:MouseEvent):void{
if (frame2_btn is clicked){
gotoAndPlay(3);
stage.removeEventListener(MouseEvent.CLICK,clicker);
}
if (frame3_btn is clicked){
gotoAndPlay(4);
stage.removeEventListener(MouseEvent.CLICK,clicker);
}
}
这样做的方法是什么?
答案 0 :(得分:2)
通过层次结构(向上方向)冒泡的所有事件都可以编写这样的功能。并且您可以使用target属性获取负责生成该事件的对象。
这是一个供您参考的演示代码(For Actionscript和Haxe)
stage.addEventListener(MouseEvent.CLICK,clicker);
function clicker (e:MouseEvent):void{
if (e.target.name == "frame2_btn") {
gotoAndPlay(3);
stage.removeEventListener(MouseEvent.CLICK,clicker);
}
if (e.target.name == "frame3_btn"){
gotoAndPlay(4);
stage.removeEventListener(MouseEvent.CLICK,clicker);
}
}
只需在每个对象中创建一个额外的属性名称(精灵,形状......,其中有很多),这使得他们的识别变得更加容易。
希望这能帮到你
最佳迪帕克
答案 1 :(得分:0)
如果你有一个简单的按钮,它应该没有问题,如果它是一个动画片段,它充当按钮,那么孩子们会给你一个不同的名字。
尝试
时会得到什么?stage.addEventListener(MouseEvent.CLICK,clicker);
function clicker (e:MouseEvent):void{
trace(e.target.name);
}