0

在我的库中,我有一堆名为tip1、tip2、tip3、tip4 的类……等等。是否可以使用 for 循环在舞台上创建每个实例的一个实例?我试过这个,但它似乎没有用。

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

此外,您通常希望使用stage.stageWidth而不是stage.width,因为后者将返回舞台边界框宽度(可能与 swf 文件覆盖的区域不同)。

于 2012-07-11T20:02:58.443 回答