0

私のライブラリには、tip1、tip2、tip3、tip4... などの名前のクラスがたくさんあります。for ループを使用して、ステージ上でそれぞれのインスタンスを 1 つ作成することは可能ですか? これを試しましたが、うまくいかないようでした。

var tips:int = 12;
for(var i:int = 1; i<=tips; i++){
    var tipName:String = "tip"+i

    var tip:MovieClip = new tipName();
    tip.name = "tip" + i
    tip.x = stage.width;
    tip.y = 0;
    addChild(tip);
}

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

3

「getDefinitionByName」の部分がありませんでした。

// Up top
import flash.utils.getDefinitionByName;

// Down below
var tips:int = 12;
for (var i:int = 1; i < tips; ++i ) {
  var myClass:Class = getDefinitionByName('tip' + i) as Class;
  var tip:Object = new myClass();
  tip.name = "tip" + i; 

....

}
于 2012-07-11T20:03:44.417 に答える
0

それ以外の

var tip:MovieClip = new tipName();

試してみてください(記憶から書きます)

var clazz:Class = getDefinitionByName(tipName) as Class;
var tip:MovieClip = new clazz();

また、後者はステージ バウンディング ボックスの幅 (swf ファイルがカバーする領域とは異なる場合があります) を返すため、通常はstage.stageWidth代わりにを使用します。stage.width

于 2012-07-11T20:02:58.443 に答える