Flash 如何处理已单击的对象而不是其中的子对象?

Flash 如何处理已单击的对象而不是其中的子对象?,flash,actionscript-3,programming-languages,click,Flash,Actionscript 3,Programming Languages,Click,在MouseEvent.CLICK函数中,我通常使用e.target来处理我单击的movieClip,但这只适用于内部没有任何子项(如文本和其他符号)的movieClip。当它内部有子对象时,e.target返回Mc内部的子对象,但不返回Mc本身。e.currentTarget也不起作用;它返回[object MovieClip],但不是Mc的实例名。还有什么我可以修的吗? 谢谢。要获取实例名称,您需要e.currentTarget.name要获取实例名称,您需要e.currentTarget.

在MouseEvent.CLICK函数中,我通常使用e.target来处理我单击的movieClip,但这只适用于内部没有任何子项(如文本和其他符号)的movieClip。当它内部有子对象时,e.target返回Mc内部的子对象,但不返回Mc本身。e.currentTarget也不起作用;它返回[object MovieClip],但不是Mc的实例名。还有什么我可以修的吗?
谢谢。

要获取实例名称,您需要
e.currentTarget.name
要获取实例名称,您需要
e.currentTarget.name
e.target
=已单击的元素

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

假设红色框包含蓝色框:

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick);
如果单击红色框(内部蓝色框的外部):

e.target
=红色

e.currentTarget
=红色

如果单击蓝色框:

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick);
e.target
=蓝色

e.currentTarget
=红色


要防止蓝框分派单击事件,可以禁用子元素的鼠标事件:

red.mouseChildren = false;
如果然后单击蓝色框:

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick);
e.target
=红色


e.currentTarget
=红色

e.target
=已单击的元素

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

假设红色框包含蓝色框:

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick);
如果单击红色框(内部蓝色框的外部):

e.target
=红色

e.currentTarget
=红色

如果单击蓝色框:

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick);
e.target
=蓝色

e.currentTarget
=红色


要防止蓝框分派单击事件,可以禁用子元素的鼠标事件:

red.mouseChildren = false;
如果然后单击蓝色框:

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick);
e.target
=红色


e.currentTarget
=red

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

将预期目标的
mouseChildren
设置为
以阻止事件传播到MovieClip的子级。

是否需要任何用户儿童的互动?如果没有,则可以通过设置mc.mouseChildren=false来禁用子项的交互。是否需要在子项中进行任何用户交互?如果没有,则可以通过设置mc.mouseChildren=false来禁用子对象的交互