Actionscript 将所有单击鼠标事件置于一个侦听器中

Actionscript 将所有单击鼠标事件置于一个侦听器中,actionscript,mouseevent,addeventlistener,Actionscript,Mouseevent,Addeventlistener,如果可能的话,我想知道如何在一个侦听器中合成不同对象的click mouseevent 我想做的是让这个监听器对所有的按钮点击都通用,比如: stage.addEventListener(MouseEvent.CLICK,clicker); function clicker (e:MouseEvent):void{ if (frame2_btn is clicked){ gotoAndPlay(3); stage.removeEventListener(MouseEvent.CLICK,cl

如果可能的话,我想知道如何在一个侦听器中合成不同对象的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);
}

}

这样做的方法是什么?

确实可以编写这样的函数,使所有事件都通过层次结构(向上)冒泡。您可以使用target属性获取负责生成该事件的对象

这里有一个演示代码供您参考(用于Actionscript和Haxe)

只需在每个对象(精灵、形状等)中添加一个额外的属性名称,这会使它们的识别更加容易

希望这对你有帮助


Best Deepak

如果你有一个简单的按钮,它应该可以正常工作,如果它是一个movieclip,充当一个按钮,那么孩子们会给你一个不同的名字

当你尝试时,你得到了什么

stage.addEventListener(MouseEvent.CLICK,clicker);

function clicker (e:MouseEvent):void{
    trace(e.target.name);
}

我复制粘贴了你的代码,但它似乎无法检测到对象。我试着追踪,但什么也没发现。我做错了什么?
stage.addEventListener(MouseEvent.CLICK,clicker);

function clicker (e:MouseEvent):void{
    trace(e.target.name);
}