2010-02-04 112 views
1

這是參考My Other Question如何檢測拖放操作結束?

如果拖放操作過早結束,如何檢測和分派事件? 我需要知道用戶不再拖動項目。即使dragDrop和dragComplete事件不會觸發。它幾乎就像我需要添加一個事件監聽器到dragManager,但那不是真的可能......是嗎?

回答

1

它看起來像基本上你需要能夠告訴是否DragManager胡扯。即使在拖放系統中有一個錯誤事件(我沒有看到過,但也許我錯過了某些明顯的事情),但您可能無法一直指望它。

有點像試圖建立一個客戶端來知道服務器何時死亡的事情,是嗎?

我可能會離開,但我想你可以在開始拖動時添加一個mouseMove監聽器,並不斷檢查是否仍在拖動。我相信你可以動態設置mouseMove事件觸發的頻率。

而且,當然,一旦完成拖動 - 無論成熟還是過早 - 請移除mouseMove偵聽器。

我真的不喜歡做這樣的事情。爲操作添加保姆。但我認爲它會做需要做的事情,我不認爲它應該是混亂的。

+0

你會添加鼠標移動偵聽器嗎?我遇到的問題在另一個問題中解釋,所以如果你有另一個答案,那麼我們就不必擔心「保姆」了。 – invertedSpear 2010-02-04 22:32:24

+0

OK JONYC幫助我將事件附加到什麼上面,這不是理想的方式,但它看起來像在工作。感謝您的幫助 – invertedSpear 2010-02-04 23:40:40

1

對於Flash Builder 4中,嘗試使用:

DragEvent.DRAG_EXIT 

否則,你可以使用一個舞臺事件偵聽器來偵聽鼠標移出

stage.addEventListener(MouseEvent.MOUSE_OUT... 
+0

我希望我能接受你們兩個。你將不得不解決upVote :) – invertedSpear 2010-02-04 23:32:10

0

dragComplete事件類型阻力引發劑。