1

我已将缩略图加载到容器中。每个拇指都有一个 MOUSE_OVER 和 _OUT 监听器。我将每个拇指 mouseChildren 设置为 false。

在拇指后面创建的弹出窗口正在触发 MOUSE_OVER 事件。我在弹出窗口中将 mouseEnabled 设置为 false。

我不确定为什么会这样。我会很感激任何线索。

for (var i:uint = 0; i < numOfThumbs; i++) {

    // add thumb
    thumb = new Thumb
    thumb.buttonMode = true;
    thumb.mouseChildren = false;
    container.addChild(thumb);

    // add listener
    thumb.addEventListener(MouseEvent.MOUSE_OVER, rollOverHandler, false, 0, true);
    thumb.addEventListener(MouseEvent.MOUSE_OUT, rollOutHandler, false, 0, true);

    // add popup
    popup = new Popup;
    popup.mouseEnabled = false;
    thumb.addChildAt(popup, 0);
}

private function rollOverHandler(e:MouseEvent):void {
    // Hey popup.... stop triggering this. I just want the thumb to trigger this. jerk.
}
4

2 回答 2

2

它按预期工作。子对象影响父对象的边界(这是接收 mouseOver/Out 的内容)。

您最好的选择是:

A:将您的弹出窗口放在不同的 displayObject 容器中(不是拇指的孩子)

B:在弹出窗口可见时暂时禁用 Thumb 上的 mouseInput,

C:在弹出窗口上,设置 mouseEnabled = true (保持 mouseChildren = false)并检查你的 rollOverHandler 如果事件目标(e.target)是弹出窗口,如果为真则返回:

if(e.target == popup) return;
于 2012-07-26T22:57:05.803 回答
-2

为主影片剪辑设置mouseChildren为 false。

于 2012-07-26T22:50:39.103 回答