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