【问题标题】:How to create a series of class instances in a for loop, as3如何在for循环中创建一系列类实例,as3
【发布时间】:2012-07-12 04:15:13
【问题描述】:
在我的库中,我有一堆名为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);
}
任何帮助将不胜感激。谢谢!
【问题讨论】:
标签:
actionscript-3
for-loop
addchild
【解决方案1】:
您缺少“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;
....
}
【解决方案2】:
代替
var tip:MovieClip = new tipName();
试试(凭记忆写)
var clazz:Class = getDefinitionByName(tipName) as Class;
var tip:MovieClip = new clazz();
此外,您通常希望使用stage.stageWidth 而不是stage.width,因为后者将返回舞台边界框宽度(可能与 swf 文件覆盖的区域不同)。