Flash ActionScript3 滑鼠移入移出與點擊,應用移除監聽
這個範例用到監聽移入、移出、點擊的事件監聽,並在點擊事件一開始移除移出的監聽,以免點擊事件讓監聽的物件消失,而又監聽到移出事件。
範例fla檔案_錯誤
會發現這個錯誤範本有移入移出與點擊的監聽,但還是會出現奇怪的結果,就是因為沒有移除監聽。
解決方式是將上面這個監聽程式碼複製到點擊事件的Function內並將add改為remove
如下
就可以正常執行了。
範例fla檔_正確
先來看會有問題的範例檔案。
範例fla檔案_錯誤
會發現這個錯誤範本有移入移出與點擊的監聽,但還是會出現奇怪的結果,就是因為沒有移除監聽。
// 監聽 small1_btn , small2_btn 滑鼠移出事件
small1_btn.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);small2_btn.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
解決方式是將上面這個監聽程式碼複製到點擊事件的Function內並將add改為remove
如下
// 監聽 small1_btn , small2_btn 滑鼠點擊事件
small1_btn.addEventListener(MouseEvent.CLICK, onClickToGoToAndStop1);
small2_btn.addEventListener(MouseEvent.CLICK, onClickToGoToAndStop2);
function onClickToGoToAndStop1(event:MouseEvent):void
{
trace("滑鼠點擊small1_btn");
small1_btn.removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler); trace("移除small1_btn滑鼠移出監聽");
gotoAndStop("mc_1");
}
function onClickToGoToAndStop2(event:MouseEvent):void
{
trace("滑鼠點擊small2_btn");
small2_btn.removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler); trace("移除small2_btn滑鼠移出監聽");
gotoAndStop("mc_2");
}
就可以正常執行了。
範例fla檔_正確
留言
張貼留言