ActionScript 3.0 のイベント処理モデル

ActionScript 3.0 では、以前のバージョンの ActionScript で使用されていたさまざまなイベント処理メカニズムに代わる 1 つのイベント処理モデルが導入されました。 新しいイベントモデルは、ドキュメントオブジェクトモデル(DOM)レベル 3 のイベント仕様に基づいています。

ActionScript 2.0 の addListener() メソッドを使用した経験があれば、ActionScript 2.0 のイベントリスナーモデルと ActionScript 3.0 のイベントモデルとの違いがよくわかります。次のリストで、この 2 つのイベントモデルの主な違いをいくつか説明します。

  • ActionScript 2.0 でイベントリスナーを追加するには、 addListener() を使用する場合と addEventListener() を使用する場合がありますが、ActionScript 3.0 では、すべての場合に addEventListener() を使用します。

  • ActionScript 2.0 にはイベントフローの仕組みがないので、 addListener() メソッドを呼び出すことができるのはイベントをブロードキャストするオブジェクトに対してのみでした。ActionScript 3.0 では、イベントフローに組み込まれているすべてのオブジェクトに対して addEventListener() メソッドを呼び出すことができます。

  • ActionScript 2.0 では、イベントリスナーは関数、メソッド、オブジェクトのいずれかですが、ActionScript 3.0 では、関数とメソッドだけをイベントリスナーにできます。

  • on( event ) シンタックスが ActionScript 3.0 ではサポートされないので、ActionScript イベントコードをムービークリップに追加できません。イベントリスナーを追加するには、 addEventListener() を使用します。

    次の例では、 aButton という名前の Button コンポーネントの MouseEvent.CLICK イベントをリスンします。これは、ActionScript 3.0 の基本的なイベント処理モデルを示しています。

    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
    function clickHandler(event:MouseEvent):void { 
    trace("clickHandler detected an event of type: " + event.type);  
    trace("the event occurred on: " + event.target.name);  
    }

    ActionScript 3.0 イベント処理について詳しくは、『ActionScript 3.0 のプログラミング』を参照してください。ActionScript 3.0 のコンポーネントのイベント処理について詳しくは、 イベント処理 を参照してください。