5.1イベントリスナー登録とイベントハンドラ(1)
■イベント発生とイベントリスナーの仕組み
ActionScript3.0からイベント処理の仕組みが変わりました。「クリックで移動」などのようにイベントを受けて処理を実行したい場合には、受けたいイベントの種類と実行したいメソッドの組み合わせを、addEventListener()メソッドを使ってイベントを受けることができるクラスにリスナー登録して待っています。イベントが発生すると登録しておいたメソッドが呼ばれます。この一連の流れを図にすると次のようになります。
この仕組みは、「誰か訪ねてきたら、ここに連絡してください」と受付に登録しておくようなものです。すると受付は「誰が何時訪ねてきたか」というイベントオブジェクトを連絡してくれるというわけです。
fig05-01-01p206 イベント発生を受ける仕組み。
簡単な例をメインのタイムラインのフレームアクションで確認してみましょう。次の例はステージのインスタンスball_mcをクリックしたならばonClick()メソッドを実行するスクリプトです。イベントの種類はMouseEvent.CLICK、イベント発生で呼び出すイベントハンドラ名はonClickです。
[:sample:] clickeventSample1.fla
例:
fig04-01-01 インスタンスをクリックすると出力ウインドウに「Clickしました」と出力されます。
ActionScript3.0からイベント処理の仕組みが変わりました。「クリックで移動」などのようにイベントを受けて処理を実行したい場合には、受けたいイベントの種類と実行したいメソッドの組み合わせを、addEventListener()メソッドを使ってイベントを受けることができるクラスにリスナー登録して待っています。イベントが発生すると登録しておいたメソッドが呼ばれます。この一連の流れを図にすると次のようになります。
この仕組みは、「誰か訪ねてきたら、ここに連絡してください」と受付に登録しておくようなものです。すると受付は「誰が何時訪ねてきたか」というイベントオブジェクトを連絡してくれるというわけです。
fig05-01-01p206 イベント発生を受ける仕組み。
簡単な例をメインのタイムラインのフレームアクションで確認してみましょう。次の例はステージのインスタンスball_mcをクリックしたならばonClick()メソッドを実行するスクリプトです。イベントの種類はMouseEvent.CLICK、イベント発生で呼び出すイベントハンドラ名はonClickです。
[:sample:] clickeventSample1.fla
例:
//CLICKイベントのリスナーに登録
ball_mc.addEventListener(MouseEvent.CLICK, onClick);
//イベントを受けて実行
function onClick(event:MouseEvent):void {
trace("Clickしました");
}
fig04-01-01 インスタンスをクリックすると出力ウインドウに「Clickしました」と出力されます。