mouseEnabled + MOUSE_OVER冲突

时间:2012-08-14 09:01:01

标签: actionscript mouseevent labels

我正在努力让我的动画工作在屏幕的单独区域唤起状态在悬停时出现/消失并且如果点击则转到其他地方但是,如果你点击它一下就会出现到该标签然后回到开始。有什么建议吗?

//mouse overs (i've only left 1 instance of each event listener here)
comic.addEventListener(MouseEvent.MOUSE_OVER,BubbleHover);
//mouse outs
comic.addEventListener(MouseEvent.MOUSE_OUT,BubbleOut);
//mouse down
comic.addEventListener(MouseEvent.CLICK,BubbleClick);


//
// Take the playhead to where the user hovers. 
//
function BubbleHover(evtObj:MouseEvent) {
    var LabelName:String = evtObj.target.name + "Bubble";
    trace(evtObj.target.name +" bubble appeared"); //state which bubble appears
    //go to the section clicked on...
    gotoAndStop(LabelName);

}
//
// Return to the beginning bubble
//
function BubbleOut(evtObj:Event):void{

    gotoAndStop("lookBubble");
}

//
// Go to the Label Page 
//
function BubbleClick(evtObj:Event){

    var MovieClipPage = evtObj.target.name +"_page";
    if (mouseEnabled) {  
        mouseEnabled=false;
        trace(mouseEnabled); // returns false but then returns to "lookBubble"
    }
    gotoAndStop(MovieClipPage);
    mouseEnabled(true);


}

根据我的理解,当播放头转到BubbleClick标签时,MouseEvent.MOUSE_OUT正在发生。我有什么想法可以绕过这个吗?

1 个答案:

答案 0 :(得分:0)

是的,不幸的是,你似乎发现了一些动作脚本中的怪癖。问题是,如果影片剪辑具有鼠标输出事件且鼠标悬停在该对象上。如果将mouseEnabled和mouseChildren设置为false无关紧要,那么out事件仍会触发。

处理此问题的方法是使用某些bool手动检查状态(isReallyEnabled)或删除事件侦听器。