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しました」と出力されます。