跳轉到內容

ActionScript 2.0/事件處理簡介

來自華夏公益教科書
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 類是僅包含事件、靜態方法和靜態屬性的類。你無法建立這兩個類的例項。(靜態方法和屬性將在下一章中簡要介紹,並在第三部分中詳細介紹)。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 應用程式。

  1. 從技術上講,事件處理程式是一個包含函式的屬性。
華夏公益教科書