2010-11-05 21 views
1

我的建築,它的一些可拖動按鈕的Flash應用程序拖放對象,我希望他們這樣的表現:如何檢測一個點擊一拖在AS3

  • 你點擊它,點擊事件1發生,
  • 你點擊並按住按鈕,你可以移動它 。如果從 保持釋放,它不觸發 ClickEvent

我遇到不知道用戶是否只需點擊或開始拖動事件的邏輯問題。有沒有人知道任何邏輯來解決這個問題?我曾考慮過其他替代方法,例如放置只能拖動或只能點擊的按鈕區域,但我在其他Flash應用程序中看到過這種類型的功能,我想知道它是如何實現的。

回答

2

另一種方法可能是mousedown和mouseup之間的間隔 - 拖動需要比點擊更長的時間。

+0

比檢查鼠標是否移動更好的答案。點擊速度很快,拖動時間較長,有些用戶可能無法點擊而無法移動,特別是平板電腦或觸摸屏用戶,或具有非常快的鼠標的用戶。 – AttackingHobo 2010-11-05 19:35:25

1

有時,最明顯的見解只有找到自己的方式進入我的大腦淋浴...

我意識到要完成這僅僅是通過保持鼠標的軌道時MOUSE_DOWN首次註冊座標最簡單的方法。然後,當MOUSE_UP事件發生時,您只需檢查鼠標座標是否相同或鼠標位置是否已更改。如果鼠標沒有移動,那麼用戶點擊對象,如果鼠標移動了,那麼你知道用戶拖動了對象,所以他們沒有點擊。

+0

我想你需要一定的寬容度,因爲即使用戶點擊鼠標,鼠標可能會略微移動。我使用平板電腦,點擊時很難不移動光標。 – hamishtaplin 2010-11-05 11:25:56

+0

同意。 +/-幾個像素。我認爲你的時間間隔解決方案是一個更好的解決方案:) – justinl 2010-11-06 00:31:04