檢查事件程序

以下是您在建立事件偵聽程式時的程序步驟說明。這個範例是建立偵聽程式函數,當您按下 myButton 物件時,就會呼叫這個函數。

程式設計人員所撰寫的實際程式碼如下所示:

function eventResponse(event:MouseEvent):void
{
    // Actions performed in response to the event go here.
}

myButton.addEventListener(MouseEvent.CLICK, eventResponse);

這是此程式碼在 Flash Player 中執行時的實際運作情形。

  1. SWF 檔載入時,Flash Player 就會記下有個名叫 eventResponse() 函數的事實。


    圖例:Flash Player 知道有個名叫 "eventResponse()" 的函數

  2. 接著 Flash Player 會執行程式碼 (明確地說,即不在函數中的程式碼行部分)。在這裡只有一行程式碼,它會針對事件來源物件 (名為 myButton) 呼叫 addEventListener() 方法,並傳遞 eventResponse 函數當做參數。


    圖例:Flash Player 呼叫物件 myButton 的 addEventListener() 方法,並訂閱 eventResponse() 做為偵聽程式。

    1. myButton 內部具有一份函數清單,並偵聽其每個事件,因此當呼叫其 addEventListener() 方法時,myButton 就會將 eventResponse() 函數儲存在其事件偵聽程式清單中。


      圖例:Flash Player 將 eventResponse() 儲存在偵聽程式的 myButton 內部清單中

  3. 當使用者按下 myButton 物件時,就會觸發其 click 事件 (就是程式碼中的 MouseEvent.CLICK)。


    圖例:使用者以滑鼠游標按一下按鈕 myButton

    此時,會發生下列情況:

    1. Flash Player 會建立一個物件,也就是與上述事件相關之類別的實體 (在這個範例中是 MouseEvent)。對許多事件而言,這是 Event 類別的實體;對滑鼠事件而言,這是 MouseEvent 實體;而對其它事件而言,則是與該事件相關之類別的實體。建立的這個物件就是所謂的「事件物件」,它包含所發生事件的相關特定資訊:事件的類型、發生位置以及其它事件特有的資訊 (如果有的話)。


      圖例:Flash Player 建立新物件 "eventObject"

    2. Flash Player 接著會檢閱 myButton 所儲存的事件偵聽程式清單。它會逐一檢視這些函數、呼叫每個函數,並將事件物件當做參數傳遞至函數。由於 eventResponse() 函數也是 myButton 的偵聽程式之一,因此 Flash Player 在執行這個程序時,也會呼叫 eventResponse() 函數。


      圖例:Flash Player (特指 myButton) 呼叫 eventResponse() 函數,並傳遞 eventObject 的參考當做參數

    3. 呼叫 eventResponse() 函數時,該函數的程式碼就會執行,因而會執行您所指定的動作。


      圖例:Flash Player 執行函數 "eventResponse()" 內包含的動作


Flash CS3

 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/main/00000022.html