2008-10-13 314 views
3

在Flash中,似乎有兩套鼠標點擊事件:Flash中的onMouseUp/Down和onPress/Release事件有什麼區別?

  • onMouseUp,onmousedown事件
  • onPress,onRelease

是否有這些事件之間的任何實際的區別嗎?我無法從文檔中看出,我沒有注意到實際使用中的任何內容,但在相同的基本事件中有兩組不同的名稱似乎很奇怪。我錯過了什麼嗎?他們之間有區別嗎?

澄清:這是在ActionScript 2的代碼,針對Flash 8中

回答

5

onMouseDown和onMouseUp是任何可以通過Mouse.addListener()偵聽的常規事件。不管鼠標點擊的位置如何,它們都會被觸發。

onPress和onRelease特定於特定的MovieClip。如果在該MovieClip頂部按下或釋放鼠標,它們纔會被觸發。同樣重要的是onReleaseOutside ...在您點擊一個MovieClip的情況下,然後將鼠標拖到外面,然後鬆開鼠標。在這種情況下,將不會有onRelease事件,只有onReleaseOutside事件,所以如果您沒有聽到後者,您的程序會認爲鼠標按鈕卡住了。

1

不是一個Flash開發人員,但在正常的Windows應用程序,你可以按下一個按鈕,用空格鍵,並通過輸入密鑰來激活它。

另外,MouseUp/Down可以發生在任何地方,也可能不會暗示任何東西。因此,特定控件上的新聞/發佈具有更重要的意義。

+0

所有這些事件處理程序都在使用特定的UI對象,所以我認爲它們仍然有意義。至少與新聞/發佈一樣有意義。 – Herms 2008-10-13 15:25:13

+0

在這種情況下,也許是的。關鍵是MouseUp/Down不會有意義,而Press/Release可能會。我的帖子的第一部分仍然回答這個問題。 – 2008-10-13 15:46:36

+0

我不確定第一部分是否相關。我不是在說這裏的按鈕,而是SWF中隨機的影片剪輯(畫布)。 – Herms 2008-10-13 15:51:52

-1

onPress和onRelease不在AS2代碼中,它們已被onMouseDown和onMouseUp取代,在AS3中,您可以在AS2 Migration Guide中閱讀。

1

我發現這一邊做問題的一些谷歌上搜索:

http://www.gogoat.com/2006/07/27/onpress-vs-onmousedown/

它看起來像鼠標鬆開/鼠標按下事件觸發,即使鼠標在影片剪輯外,而onPress /釋放會在處理之前自動檢查鼠標是否在剪輯內。我可以發誓我爲此進行了測試,但我只是驗證了它,所以我不能有。

4

新聞/發佈是交互事件,而不是鼠標事件。如果你用鍵盤激活一個按鈕或MC(按Tab鍵並按空格),它將觸發一個Press事件,但不是一個MouseDown。同樣,如果你點擊一個禁用的按鈕,這將觸發一個MouseDown事件,但不是一個按鈕(因爲沒有按鈕交互發生)。

相關問題