2011-05-07 114 views
0

MOUSE_UP的addEventListener不起作用 - >任何人都知道什麼是錯的?它可以工作,如果我刪除enter_frame線Flash錯誤AS3

回答

1

這是在您做拖/放東西時在Flash中很常見的模式。基本上,發生的事情是,如果將目標從鼠標光標下移出(或者將鼠標光標從目標上移開),那麼MouseUp事件不會觸發。

最簡單的解決方案和我經常使用的解決方案是更改MouseUp事件偵聽器的目標。而不是聽你試圖拖動的物品,而是在舞臺上傾聽。

另一種方法是在目標項上偵聽MouseEvent.MOUSE_UP和MouseEvent.MOUSE_OUT。這樣,如果鼠標離開該項目,您可以立即停止拖動。

draggableItem.addEventListener(MouseEvent.MOUSE_DOWN, startDragging); 

function startDragging(e:MouseEvent):void { 
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragging); 
// OR: 
draggableItem.addEventListener(MouseEvent.MOUSE_OUT, stopDragging); 
draggableItem.addEventListener(MouseEvent.MOUSE_UP, stopDragging); 

draggableItem.startDrag() // etc 
} 

這有道理嗎?讓我知道如果這有幫助!

+0

是完美的。謝謝!! – user559142 2011-05-07 00:22:38