0

ボタンのクリックに基づいて適切なswfsをロードするメインのムービークリップがあります。ボタンと対応するswfsはXMLを介してロードされます。これを達成するために私が採用した方法はここにあります:サンプルコード

さて、これはうまく機能しているようです。しかし、私の問題は、ボタンをクリックするたびに個別のSWFを呼び出すのではなく、共通のSWFを維持し、適切なXMLコンテンツのみを変更して、より動的にすることです。

これは私が立ち往生しているところです、私はxmlの各ボタンにIDを追加し、それをCommon SWF(子swf)に渡すことにしました。これにより、IDに基づいて、呼び出すのではなく、対応するXMLコンテンツをロードできます。ボタンのクリックごとに個別のswfs。XMLは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<menu>
  <item>
     <label>Gallery1</label>
     <url><![CDATA[swf/gallery.swf]]></url>
     <id>01</id>
  </item>
  <item>
     <label>Gallery2</label>
     <url><![CDATA[swf/gallery.swf]]></url>
     <id>02</id>
  </item>
</menu>

これで、このIDをプッシュして、メインのムービークリップでトレースすることもできますが、Common /ChildSWFに渡す方法がわかりません。私はAS3の専門家ではなく、毎日それを学んでいます。ですから、誰かがこれを手伝ってくれるなら、本当にありがたいです。前もって感謝します。

4

1 に答える 1

1

SWF-Buttonは、idプロパティのセッターである関数を実装する必要があります。このメソッドは、ローダーを参照できます-クリックを読み取るSWFメソッド。

サンプル:

//LOADER-SWF

// loader code:
Loader.load(urlReference);

// ... //

//in load/add to stage event
var child:IChild = Loader.content;
child.setID(1, clickFunction);

//IChild.as
//Interface
public interface IChild {
   function method setID(id:uint, callBack:Function):void;
}


//BUTTON.swf
//implement IChild

private var _id:uint;
private var _callBack:Function;

// ... //

public function method setID(id:uint, callBack:Function):void{
   _id=id;
   _callBack=callBack;
}

// ... //

private function onClick(e:MouseEvent):void{
   _callBack(_id);
}
于 2009-10-13T14:59:46.967 に答える