我有一个Movieclip(实例:my_mc),它包含Sprite,Bitmap,Texfield和Button(children)
Movieclip(my_mc)有一些我希望通过e.target
my_mc.addEventListener(MouseEvent.CLICK, my_fc);
function my_fc(e:MouseEvent):void{
...
}
所以当有人点击my_mc的子对象时,只有my_mc实际上会收到CLICK
出于此目的,我使用了my_mc.mouseChildren = false;
但我还需要按钮仍处于活动状态,以便只有当有人点击它时才会收到CLICK的孩子。我试图添加button.mouseEnabled = true;
,但这不起作用......
有什么建议吗?
答案 0 :(得分:2)
如果按钮位于my_mc内,则需要使用my_mc.button.mouseEnabled = true;
并确保为my_mc.button提供事件监听器:my_mc.button.addEventListener(MouseEvent.CLICK, buttonHandler);
还有一个buttonHandler函数。
如果它仍然不起作用......
将按钮分隔成不同的动画片段并将它们定位到您想要的位置。然后只需在原始动画片段上使用my_mc.mouseChildren = false;
,而不是在按钮上使用。
答案 1 :(得分:1)
cauko,skus toto ....
这假设您的按钮被称为btn,如果还有更多,您可能需要动态分配第二个侦听器。您无法使用my_mc.mouseChildren = false;
,因为这会删除所有鼠标事件。
my_mc.addEventListener(MouseEvent.CLICK, my_fc);
function my_fc(e:MouseEvent):void{
doSomething(e.target as MovieClip)
}
my_mc.btn.addEventListener(MouseEvent.CLICK, my_fc2);
function my_fc2(e:MouseEvent):void{
e.stopImmediatePropagation();
doSomething(e.target.parent);
}
function doSomething(mc:MovieClip):void{
trace(mc);
}