- ベストアンサー
(AS3)「var mc:MovieClip = new MC?();」 の?の部分を変数にできないか
タイトルの通りです。 今ライブラリには100個のムービークリップがあって、それぞれMC1~MC100までのリンケージ名(クラス名)でActionScriptに書き出しているものとします。 これらを動的に「var mc:MovieClip = new MC?();」というふうにしたいのですが、うまくいきません。 一応下のように自分なりに考えてみたのですがやっぱりダメでした。 var i:int = 3; var str:String = "MC"+i; var mc:MovieClip = new str(); stage.addChild(mc);
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
import flash.utils.getDefinitionByName; var i:int = 3; var str:String = "MC"+i; var mcClass:Class = getDefinitionByName(str) as Class; if(mcClass != null){ var mc:MovieClip = new mcClass(); stage.addChild(mc); } こんな感じでどうでしょう?
お礼
おお!すごい!できました。 getDefinitionByName(str) as Class;なんて関数の存在はまったく知りませんでした。 いい勉強になりました。ありがとうございます。