AS3スコープの問題、パッケージ/クラスで新しいMCを動的に作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2226447

質問

どうもありがとうございました!これが私の質問です...

public function addNewMc():void{
    var newMC:MovieClip= new MovieClip();
    this.addChild(newMC);
}
public function removeOldMc(newMC):void{
    this.removeChild(newMC);
}

クラスの上部で定義することなく、クラス全体で使用できるメソッド内で新しいMovieclipを作成するにはどうすればよいですか?また、リターンを使用せずに追加ポイントの場合。

最初の関数AddNewMCがNewMCの値を返し、他の方法にそれを渡す場合、私はそれを動作させることができます...しかし、私が書いているもののために、私は他の何かで私の返品を使い果たしたいと思っています。ありがとう!

役に立ちましたか?

解決

私があなたを完全に理解しているかどうかはわかりませんが、明示的に定義せずに動的に作成されたMovieclipにアクセスしたいように聞こえますか?!そうですか?もしそうなら、あなたは今持っていることをすることができますが、検索の方法を追加します:

public function addNewMc():void{
    var newMC:MovieClip= new MovieClip();
    this.addChild(newMC);
}

public function getMC():MovieClip
{
    var len:uint = this.numChildren;
    while(len--)
    {
      var tempObj:* = this.getChildAt(len);
      if(tempObj is MovieClip)
         return MovieClip(tempObj);
     }
     return null;
}

また、動的に作成されたmovieclipに名前プロパティを追加することもできます。

public function addNewMc():void
{
    var newMC:MovieClip= new MovieClip();
    newMC.name = "new_MC";
    this.addChild(newMC);
}

その後、このように取得できます。

this.getChildByName("new_MC");

繰り返しますが、私があなたの正確な要件を理解しているかどうかはわかりませんeerick;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top