ActionScript 2.0/事件處理簡介
關鍵概念
- 事件
- 事件處理程式
- 事件處理程式宣告
- Key 和 Mouse 類
- 監聽器
- 輪詢
一個事件是一個不可預測的事件;你永遠不知道它何時發生,儘管你知道如何對其做出反應。許多事件都基於終端使用者計算機的輸入裝置,例如滑鼠點選。其他事件可能與應用程式中的物件有關。在本節中,我們將學習如何處理事件。
一個事件處理程式是一個函式,它顯示在事件發生時該做什麼。[1] 它被宣告如下
objectName.eventHandlerName = function(){
Statements to execute when the event occurs;
}
| 程式碼 | 結果 |
|---|---|
//Assume there's a MovieClip with the instance name 'apple' on the stage.
apple.onPress = function(){
trace("That's one tasty apple, all right!");
}
|
|
每個類都有自己的事件。MovieClip 類中的事件示例包括 onPress(當滑鼠按鈕按下而游標位於 MovieClip 上方時)、onRelease(當滑鼠按鈕釋放而游標位於 MovieClip 上方時)、onLoad(當 MovieClip 載入時)等等。我們將在 MovieClip 章中詳細介紹這些內容。
Key 和 Mouse 類是僅包含事件、靜態方法和靜態屬性的類。你無法建立這兩個類的例項。(靜態方法和屬性將在下一章中簡要介紹,並在第三部分中詳細介紹)。Key 和 Mouse 類包含許多事件處理程式,不出所料,這些事件處理程式分別與鍵盤和滑鼠相關。在本章的其餘部分,我們將使用以下事件處理程式
- Mouse.onMouseDown(當按下滑鼠左鍵時)
- Key.onKeyDown(當按下任何鍵時)
既然我們無法建立滑鼠和鍵盤類的例項,我們應該如何使用它們內部的實用事件呢?答案是:監聽器。
假設我們想要一個蘋果例項在舞臺上的任何地方按下滑鼠時縮小。以下是它的程式碼
| 程式碼 | 結果 |
|---|---|
//Assume there's a MovieClip with the instance name 'apple' on the stage.
Mouse.addListener(apple);
apple.onMouseDown = function(){
this._width -= 2;
this._height -= 2;
}
|
|
在這個例子中,apple 被新增到 Mouse 類的監聽器列表中。當在舞臺上的任何地方按下滑鼠時,會向 apple 傳送一個通知,使其縮小。
使用監聽器的策略稱為回撥通知。
輪詢是指計算機重複檢查以檢視事件是否已發生。從某種意義上說,事件處理也是輪詢,儘管這種輪詢策略內置於 ActionScript 中。還有一種自己輪詢的方法。這種策略作為事件處理的替代方案,將在我們稍後對 Key 類的詳細討論中介紹。
既然我們已經學習了 ActionScript 的所有基礎知識,現在我們可以近距離地檢視每個內建類,並學習如何使用它們來建立功能強大且動態的 Flash 應用程式。
- ↑ 從技術上講,事件處理程式是一個包含函式的屬性。