子MovieClip正在触发mouseChildren和mouseEnabled设置为false的事件

时间:2012-07-26 21:27:32

标签: actionscript-3 flash

我将缩略图加载到容器中。每个拇指都有一个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.
}

2 个答案:

答案 0 :(得分:2)

它按预期工作。子对象会影响父对象的边界(即接收mouseOver / Out的对象)。

你最好的选择是:

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

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

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

if(e.target == popup) return;

答案 1 :(得分:-2)

为主要MovieClip设置mouseChildren为false。