AS3中for循环创建(复制)对象
as3的方法:
方法常用的有两种,
第一种适用所有的对象,方法是先建一个数组,然后把建立的对象的引用指定对数组相应的索引
第二种适用显示对象,其实在as3中,都应该用这种方式,就是给对象指定name,然后使用getChildByName的方式来引用该对象.
//通用的方法,适用所以对象
var obj:Array = new Array()
for(var i:uint=0;i<10;i++){
var m:MovieClip = new MovieClip()
addChild(m)
obj["mc"+i] = m
}
trace(obj["mc1"])
//适用显示对象
for(var k:uint=0;k<10;k++){
var mm:MovieClip = new MovieClip()
mm.name = "mc"+k
addChild(mm)
}
trace(getChildByName("mc1"))
另外,有时候我们会遇到这样的情况
var obj0:MC0 = new MC0()
var obj1:MC1 = new MC1()
var obj2:MC2 = new MC2()
var obj3:MC3 = new MC3()
这个时候,我们可以使用getDefinitionByName,用字符串返回类
for(var i:uint=0;i<4;i++){
var _class:Class = getDefinitionByName("MC"+i) as Class
var m = new _class()
addChild(m)
}
var obj:Object = new Object(); for (var i:int = 0; i < 10; i++){ trace(i) var mc:MovieClip = new MC(); obj["mc"+i] = mc; obj["mc"+i].x += 100; obj["mc"+i].y = 100; } trace(obj.mc0); //输出 [Object MovieClip] trace(obj.mc1.x); //输出 100; |