禁用动画片段的特定子项的鼠标事件

时间:2014-02-26 23:34:00

标签: actionscript-3 events button

我有一个包含很多孩子的MovieClip。 其中一个是平面设计师为了让我的生活变得更加艰难(也可能是用户的一个)而付出的巨大(无用)阴影 :)

现在我面临一个小问题:阴影正在捕捉附加到主要MovieClip(其父级)的MouseEvents,这非常糟糕,因为它与图形的其余部分相距很远。我现在正试图避免它。

显然我已经尝试将影子mc的属性mouseEnabledmouseChildren设置为false,但它不起作用。

我找到了一个前面的线程(here),面对同样的情况。但接受的解决方案看起来并不适合我。

我缺少什么?

3 个答案:

答案 0 :(得分:1)

如果mouseEnabledmouseChildren不起作用,请使用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区域。