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;
 
posted @ 2011-12-15 22:36  rob_2010  阅读(327)  评论(0编辑  收藏  举报