我有一个与MouseEvent
事件关联的CLICK
函数的MovieClip。在这个MovieClip里面我有一个TextField。
所以,当我点击我的MovieClip时,处理程序工作正常。现在,当我点击这个TextField时我需要相同的行为,但是没有改变我的处理函数。我的意思是,如果用户点击TextField而不是MovieClip,我不想将e.target
更改为e.target.parent
。
我该怎么做?
我的一些源代码:
public function Main(){
var m = new menu();
menuMng.addChild(m);
m.addEventListener(MouseEvent.CLICK, openMenu);
}
private function openMenu(e:MouseEvent):void{
// Do some stuff
}
提前致谢!
答案 0 :(得分:4)
这是一个相当常见的问题 - 您可以使用event.currentTarget
属性而不是event.target
来引用添加了事件侦听器的对象。
有关更详细的答案,请查看此问题(不要担心它的Flex方面 - 这与标准的Actionscript 3行为有关): What is the difference between target and currenttarget in flex?
答案 1 :(得分:1)
您可以在MovieClip m上将问题设置mouseChildren
属性修复为false。在这种情况下,单击文本字段将触发MouseEvent,就像用户单击m一样。
为清楚起见:
var m = new menu();
m.mouseChildren = false;
...
我希望这对你有用!