如何解决已被点击的对象而不是其中的子对象?

时间:2011-08-05 09:14:57

标签: flash actionscript-3 programming-languages click

在MouseEvent.CLICK函数中,我通常使用e.target来处理我单击的movieClip,但这只适用于内部没有任何子项(如文本和其他符号)的movieClip。当里面有孩子的时候,e.target让孩子回到Mc里面而不是Mc本身。 e.currentTarget也没有用;它返回[对象MovieClip]但不返回Mc的实例名称。无论如何我能解决它吗? 谢谢。

3 个答案:

答案 0 :(得分:2)

要获取实例名称,您需要e.currentTarget.name

答案 1 :(得分:2)

e.target =已点击的元素。

e.currentTarget =已注册侦听器的元素。

假设一个红色框包含一个蓝色框:

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick);

如果单击红色框(内部蓝色框外):

e.target =红色

e.currentTarget =红色

如果您点击蓝色框:

e.target =蓝色

e.currentTarget =红色


要阻止您的蓝框调度点击事件,您可以禁用子元素的鼠标事件:

red.mouseChildren = false;

如果您然后单击蓝色框:

e.target =红色

e.currentTarget =红色

答案 2 :(得分:1)

将预期目标的mouseChildren设置为false,以停止传播到MovieClip子项中的事件。