AS3スコープの問題、パッケージ/クラスで新しいMCを動的に作成するにはどうすればよいですか?
-
19-09-2019 - |
質問
どうもありがとうございました!これが私の質問です...
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;)
所属していません StackOverflow