我有一个包含很多孩子的MovieClip。 其中一个是平面设计师为了让我的生活变得更加艰难(也可能是用户的一个)而付出的巨大(无用)阴影 :)
现在我面临一个小问题:阴影正在捕捉附加到主要MovieClip(其父级)的MouseEvents,这非常糟糕,因为它与图形的其余部分相距很远。我现在正试图避免它。
显然我已经尝试将影子mc的属性mouseEnabled
和mouseChildren
设置为false,但它不起作用。
我找到了一个前面的线程(here),面对同样的情况。但接受的解决方案看起来并不适合我。
我缺少什么?
答案 0 :(得分:1)
如果mouseEnabled
和mouseChildren
不起作用,请使用e.target.name
属性。
但首先你必须给name
一个MovieClip
(比如shadowMC)。
如果您动态添加,请使用
yourDynamicMC.name = "shadowMC"
如果在舞台上手动添加,则将实例名称指定为“shadowMC”,
然后,在您的代码中,您MouseEvent
parent
的{{1}}函数添加以下行
MovieClip
答案 1 :(得分:1)
阅读你的问题,我假设你已经尝试将mouse MovieEip的mouseChnren设置为true,并将mouseEnabled设置为false,然后将children的mouseEnabled设置为true(阴影除外)。这个解决方案应该在我看来工作,所以我猜你的动画片段的父母可能会抓住这个事件(你没有提供太多关于此的信息)。
尝试向舞台添加一个侦听器,以查看哪个对象正在接收您的MouseEvents:
import flash.utils.getQualifiedClassName;
stage.addEventListener(MouseEvent.CLICK, onClick);
private function onClick(event:MouseEvent):void
{
trace(event.target.name, getQualifiedClassName(event.target));
}
答案 2 :(得分:0)
尝试更改MovieClip的点击区域。请参阅MovieClip文档here,这将覆盖您的MovieClip区域。