on や onClipEvent とイベントハンドラメソッドの併用

場合によっては、他の方法でコンフリクトを避けながらイベントを処理することもできます。on() メソッドおよび onClipEvent() メソッドによるイベント処理は、定義したイベントハンドラメソッドを使用するイベント処理とはコンフリクトしません。

たとえば、SWF ファイル内のボタンの例で考えてみます。このボタンには、SWF を再生させる on(press) ハンドラと、ステージ上のオブジェクトを回転させる処理を関数で定義する onPress() メソッドの両方を実装することが可能です。ボタンをクリックすると、SWF ファイルが再生され、オブジェクトが回転します。呼び出すイベントの種類や時期に応じて、on() メソッドと onClipEvent() メソッド、イベントハンドラメソッド、またはその両方を組み合わせてイベント処理方法として使用します。

ただし、on() および onClipEvent() ハンドラでの変数およびオブジェクトのスコープは、イベントハンドラやイベントリスナーのスコープとは異なります。イベントハンドラのスコープを参照してください。

また、on() をムービークリップで使用すると、ボタンイベントを受け取るムービークリップを作成できます。詳細については、ボタン状態を持つムービークリップの作成を参照してください。on() および onClipEvent() に対応するイベントを指定する方法の詳細については、on メソッドまたは onClipEvent メソッドに対するイベントの指定を参照してください。

on ハンドラおよび onPress イベントハンドラを使用するには :

  1. 新しい Flash ドキュメントを作成し、handlers.fla という名前で保存します。
  2. 矩形ツールを選択し、ステージに大きな四角形を描画します。
  3. 選択ツールを選択し、ステージ上の四角形をダブルクリックします。それから F8 キーを押して [シンボルに変換] ダイアログボックスを表示します。
  4. ボックスのシンボル名を入力し、型をムービークリップに設定して [OK] をクリックします。
  5. ステージ上のムービークリップに box_mc というインスタンス名を付けます。
  6. 次の ActionScript をステージ上のムービークリップシンボルに直接追加します。
    on (press) {
        trace("on (press) {...}");
    }
    
  7. メインタイムラインのフレーム 1 に次の ActionScript を追加します。
    box_mc.onPress = function() {
        trace("box_mc.onPress = function() {...};");
    };
    
  8. [制御]-[ムービープレビュー] を選択して Flash ドキュメントをテストします。

    ステージ上のムービークリップシンボルをクリックすると、次の出力が [出力] パネルに送られます。

    on (press) {...}

    box_mc.onPress = function() {...};

    メモ

     

    onClipEvent() および on() ハンドラを割り当てるという方法は推奨されていません。その代わり、本マニュアルで示されているように、コードをフレームスクリプトまたはクラスファイル内に配置するようにしてください。詳細については、ActionScript とイベントについておよびオブジェクトへのコードのアタッチを参照してください。


 

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

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