• ベストアンサー

(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);

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.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); } こんな感じでどうでしょう?

tenketu
質問者

お礼

おお!すごい!できました。 getDefinitionByName(str) as Class;なんて関数の存在はまったく知りませんでした。 いい勉強になりました。ありがとうございます。

関連するQ&A