這裏有幾個棘手的陷阱,不要陷入:
一個奇怪的事情,在Chrome + Firefox中,不分派是MOUSE_LEAVE事件WMODE的OPAQUE
或TRANSPARENT
。它只是不開火 - 鼠標向下或向上。
與WINDOW
它工作正常。那一個花了我很長時間才發現! GRR ... http://bugs.adobe.com/jira/browse/FP-892
第二,確保你使用Event
的參數類型,請Event.MOUSE_LEAVE
處理程序,而不是MouseEvent
。如果您嘗試使用e:MouseEvent
來處理MOUSE_LEAVE
,則會出現一個您可能永遠不會看到的錯誤(除非您使用的是調試閃存播放器)。這是一個非常容易犯的錯誤,因爲你可能會指示所有其他處理程序採用相同的方法。
這裏是我做的:(剛從mouseLeave(e:Event)
stage.addEventListener(MouseEvent.MOUSE_MOVE, drag);
stage.addEventListener(MouseEvent.MOUSE_UP, endDrag);
stage.addEventListener(Event.DEACTIVATE, endDrag);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave);
private function mouseLeave(e:Event):void
{
endDrag(new MouseEvent("MOUSE_LEAVE"));
}
public function endDrag(evt:MouseEvent):void
{
/// handle end drag
}
是的,我添加了一個事件監聽器到舞臺上來聽一個MOUSE_LEAVE ... – Mirko 2010-09-15 09:36:24
但是當我一直按下鼠標按鍵時它不會被觸發。 – Mirko 2010-09-15 09:39:29
你是對的,在我給你的例子中是一樣的。你有沒有試過loxxy的解決方案?當鼠標移出界限時,它應該可以正常工作,調度MouseUp事件或獲取分派MouseLeave事件的階段 – PatrickS 2010-09-15 12:06:09