2012/1/11

ActionScript 3.0 MouseEvent.DOUBLE_CLICK

=== 一般情況 ====

假設畫面上有個元件 a
使用 double click 事件的方法是這樣寫的:

a.doubleClickEnabled = true;
a.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick);
function onDoubleClick(e:MouseEvent):void{
trace("onDoubleClick");
}

測試順利完成



=== 特殊情況 ====

假設元件a只是用來裝元件b的容器,而元件b也是個InteractiveObject的時候
則必須要寫成這樣:

a.b.doubleClickEnabled = true;
a.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick);
function onDoubleClick(e:MouseEvent):void{
trace("onDoubleClick");
}

doubleClickEnabled 屬性必須指定到滑鼠真正點擊到的目標身上才有作用



=== 問題和解法 ===

有時候我們根本不知道點擊到的目標會是誰,而只是想要讓 onDoubleClick 乖乖觸發就好
那麼可以這樣寫:

a.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void{
e.target.doubleClickEnabled = true;
}

a.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick);
function onDoubleClick(e:MouseEvent):void{
trace("onDoubleClick");
}


讓程式自己找到那個該加上 doubleClickEnabled = true 的目標

沒有留言: