动作脚本3:移动精灵对MouseOver-listener的意外中断

时间:2014-03-01 23:50:41

标签: actionscript-3 hover mouseevent sprite mouseover

在我的舞台上,我有几个DisplayObjects。对于其中一些我已经应用了MouseOver函数。

这些功能主要是这样的:

this.addEventListener(MouseEvent.MOUSE_OVER, hoverHandler);

private function hoverHandler(evt:MouseEvent):void
    {
        this.alpha = 2 * this.alpha;
        this.addEventListener(MouseEvent.MOUSE_OUT, awayHandler);
    }

private function awayHandler(evt:MouseEvent):void
    {
        this.alpha = this.alpha / 2;
    }

这个工作正常,直到我的一些移动的精灵突然也高于我已经应用了鼠标悬停功能的精灵之一。然后我的MouseOver函数无法再检测鼠标是否在精灵上。

这对我的代码的可用性来说相当令人不安。有谁知道如何避免这种情况?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以将精灵的mouseEnabledmouseChildren设置为false

aboveSprite.mouseEnabled = false;
aboveSprite.mouseChildren = false;

答案 1 :(得分:0)

使用类似的东西:

 mc_1.hitTestObject(mc_2);

确定重叠。然后用

之类的东西发现哪个MovieClip在“另一个”之上
 parent.getChildIndex(this)

然后使用mouseEnabled = false对您不想回复的MovieClip进行去敏感化。

您的确切代码可能会有所不同,具体取决于设置。