1 つのオブジェクトに対する複数のハンドラの割り当て

さまざまなイベントをトリガとして各種のスクリプトが実行されるようにするには、オブジェクトに複数のハンドラを割り当てます。たとえば、1 つのムービークリップインスタンスに対して、次の 2 つの onClipEvent() ハンドラを割り当てることができます。1 番目のハンドラは、ムービークリップが最初にロードされるとき (またはステージに表示されるとき) に実行されます。2 番目は、ムービークリップがステージからアンロードされるときに実行されます。

on (press) {
    this.unloadMovie()
}
onClipEvent (load) {
    trace("I've loaded");
}
onClipEvent (unload) {
    trace("I've unloaded");
}

メモ

 

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

複数のハンドラを、タイムラインに配置されたコードを使用して 1 つのオブジェクトに割り当てる方法については、次の例を参照してください。このコードでは、onPress ハンドラおよび onRelease ハンドラをムービークリップインスタンスに割り当てます。

複数のハンドラをオブジェクトに割り当てるには :

  1. 新しい Flash ドキュメントを作成し、assignMulti.fla という名前を付けます。
  2. タイムラインのフレーム 1 を選択し、[アクション] パネルに次のコードを追加します。
    this.createEmptyMovieClip("img_mc", 10); 
    var mclListener:Object = new Object(); 
    mclListener.onLoadInit = function(target_mc:MovieClip) { 
         target_mc.onPress = function() { 
              target_mc.startDrag(); 
         }; 
         target_mc.onRelease = function() { 
              target_mc.stopDrag(); 
         }; 
    } 
    mclListener.onLoadError = function(target_mc:MovieClip) { 
         trace("error downloading image"); 
    } 
    var img_mcl:MovieClipLoader = new MovieClipLoader(); 
    img_mcl.addListener(mclListener); 
    img_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc); 
    
  3. [制御]-[ムービープレビュー] を選択してドキュメントをテストします。

    イメージが img_mc インスタンスにロードされ、onPress() および onRelease() イベントハンドラにより、ステージにおいてイメージをドラッグできるようになります。


 

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

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