跳到主要內容

ActionScript3.0 addEventListener與removeEventListener


在撰寫flash程式的時候,最常用到的就是對物件元件舞台等加入事件的傾聽,也就是addEventListener,但有時候我在觸發之後想馬上得移除掉傾聽事件,讓事件只發生一次,也避免傾聽事件再次發生,我就會在function中直接的removeEventListener。



然而我假如同時有好幾個傾聽事件要ADD與REMOVE,那程式碼就會"樂樂長",因此我都匯把所有的加入事件傾聽與移除事件傾聽分別放入兩個自創function中,如此一來能夠簡化程式碼的長度,以及能夠一目了然的看清楚程式碼,也不用一直拖曳BAR或滾輪,滾到手都抽筋。

 
function REU():void
{
 Drag_tree_1.removeEventListener(MouseEvent.MOUSE_UP,tree_1_up);
 Drag_tree_2.removeEventListener(MouseEvent.MOUSE_UP,tree_2_up);
 Drag_tree_3.removeEventListener(MouseEvent.MOUSE_UP,tree_3_up);
 Drag_tree_4.removeEventListener(MouseEvent.MOUSE_UP,tree_4_up);
 Drag_tree_5.removeEventListener(MouseEvent.MOUSE_UP,tree_5_up);
}
/////removeaddEventListener DOWN

function RED():void
{
 Drag_tree_1.removeEventListener(MouseEvent.MOUSE_DOWN,tree_1_down);
 Drag_tree_2.removeEventListener(MouseEvent.MOUSE_DOWN,tree_2_down);
 Drag_tree_3.removeEventListener(MouseEvent.MOUSE_DOWN,tree_3_down);
 Drag_tree_4.removeEventListener(MouseEvent.MOUSE_DOWN,tree_4_down);
 Drag_tree_5.removeEventListener(MouseEvent.MOUSE_DOWN,tree_5_down);
}
/////
function tree_1_down(e:MouseEvent):void
{
 Drag_tree_1.startDrag(); 
 RED();
}
function tree_1_up(e:MouseEvent):void
{
 Drag_tree_1.stopDrag();
 REU();
}

留言