ActionScriptのイベントについてのメモ
参考:O'Reilly Japan - 詳説 ActionScript 3.0
用語
- そもそも、「イベント」とは
- 「プログラムの中で反応を引き起こす潜在的な力を持った、実行時の注目すべき出来事」のこと
- ActionScriptのイベントは、次の2つのカテゴリに分けることができる
- ビルトインイベント
- 実行環境の状態の変化を表すイベント
- 「マウスのクリック」や「ファイルの読み込み操作の完了」など
- 実行環境の状態の変化を表すイベント
- カスタムイベント
- プログラムの状態の変化を表すイベント
- 「ゲームの終了」や「クイズの答えの送信」など
- プログラムの状態の変化を表すイベント
- ビルトインイベント
- イベントリスナー
- 任意のイベントが発生するまで待ち(聞き耳を立て)、
- イベント発生時にそのイベントを処理する(イベントに反応する)メソッドのこと
ActionScriptのイベント処理の流れ
- イベントが発生する
- ActionScriptはそのイベントを登録したすべてのイベントリスナーを実行する
- これを「イベントの送出(ディスパッチ)」と呼ぶ
- 1つのイベントに複数のイベントリスナーを対応付けることができる。
- ASはそのイベントを表す「イベントオブジェクト」と呼ばれるオブジェクトを作成する
- イベントオブジェクトは常にEventクラスに「属する」インスタンスである
- イベントの送出中に実行されるすべてのイベントリスナーは、イベントオブジェクトへの参照を引数として渡される。
- private function mouseListener(e:MouseEvent):void {..}
- イベントリスナーの mouseListener は、イベントオブジェクトである MouseEvent を使って、イベント発生時のマウスポインタの位置を知ることができる。
- private function mouseListener(e:MouseEvent):void {..}
ActionScriptのイベント処理の書き方
01| package { 02| public class Hoge { 03| public function Hoge () { 04| // イベントターゲット(イベントが発生するオブジェクト)の用意 05| var eventTarget:EventTarget = new EventTarget(); 06| 07| // イベントリスナーの登録 08| eventTarget.addEventListener(Event.COMPLETE, eventListener); 09| 10| // イベントを引き起こす操作 11| eventTarget.foo(); // Event.COMPLETEイベントが発生するような処理 12| } 13| 14| // イベントリスナーの定義 15| private function eventListener(e:Event):void { 16| trace("イベントを処理"); 17| } 17| } 19| }
- 8行目:イベントリスナーの登録
- eventTarget.addEventListener(Event.COMPLETE, eventListener);
- eventTarget において、Event.COMPLETE イベントが発生したときに、Hoge クラスのリスナー eventListener() が実行されるようにしている。
- eventTarget.addEventListener(Event.COMPLETE, eventListener);