イベント処理プロセスの確認

次に、イベントリスナーを作成するときに発生するプロセスの詳しい手順を説明します。この場合、これは 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 はコード (明確には、関数に含まれないコード行) を実行します。この場合は、1 行だけのコードです。イベントソースオブジェクト (myButton) で addEventListener() メソッドを呼び出し、eventResponse 関数をパラメータとして渡します。


    Flash Player がオブジェクト myButton の addEventListener() メソッドを呼び出し、eventResponse() をリスナーとしてサブスクライブする

    1. myButton の内部には、その各イベントを監視する関数のリストがあるので、その addEventListener() メソッドが呼び出されると、myButtoneventResponse() 関数をそのイベントリスナーのリストに保存します。


      Flash Player が myButton の 内部リスナーリストに eventResponse() を格納する

  3. ある時点で、ユーザーが myButton オブジェクトをクリックし、その click イベント (コードで MouseEvent.CLICK と識別される) をトリガします。


    ユーザーのマウスカーソルがボタン myButton をクリックした図

    その時点で、以下の処理が行われます。

    1. Flash Player は、対象のイベントに関連付けられたクラスのインスタンス (この例では MouseEvent) であるオブジェクトを作成します。多くのイベントにとっては、これが Event クラスのインスタンスになります。マウスイベントでは、MouseEvent インスタンスになり、その他のイベントでは、そのイベントに関連付けられたクラスのインスタンスになります。作成されるこのオブジェクトは "イベントオブジェクト" と呼ばれ、ここには、イベントのタイプ、発生場所、その他のイベント固有の情報など、発生したイベントに関する固有の情報が含まれます。


      Flash Player が新しいオブジェクト "eventObject" を作成する

    2. 次に、Flash Player は myButton によって格納されたイベントリスナのリストを参照します。この関数を 1 つずつ確認し、各関数を呼び出し、イベントオブジェクトをパラメータとして関数に渡します。eventResponse() 関数は myButton のリスナーの 1 つなので、このプロセスの一環として、Flash Player は eventResponse() 関数を呼び出します。


      Flash Player (具体的には myButton) が関数 eventResponse() を呼び出して、eventObject の参照をパラメータとして渡す

    3. eventResponse() 関数が呼び出されると、その関数のコードが実行されるので、指定したアクションが実行されます。


      Flash Player が関数 "eventResponse()" に含まれるアクションを実行する


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000022.html