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