【问题标题】:Actionscript 3: Unintended interruption on MouseOver-listener from moving spritesActionscript 3:MouseOver-listener 因移动精灵而意外中断
【发布时间】:2014-03-01 23:50:40
【问题描述】:

在我的舞台上,我有几个 DisplayObject。我对其中一些应用了 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 功能将无法检测鼠标是否在精灵上。

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

谢谢!

【问题讨论】:

    标签: actionscript-3 hover mouseevent sprite mouseover


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      使用类似的东西:

       mc_1.hitTestObject(mc_2);
      

      确定重叠。然后用

       parent.getChildIndex(this)
      

      然后使用mouseEnabled = false 对您不想响应的影片剪辑进行脱敏处理。

      您的确切代码可能会因设置而有所不同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 2015-05-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多