的想法是访问MC的与sequantial实例名称, 例如阶段:MC1,MC2,...闪光 - AS3并行埃维尔在AS2
现在,在AS2我会做:这[“mc”+ i] (其中“i”表示1-3之间的数字)
我将如何在as3中执行此类操作?
在此先感谢
的想法是访问MC的与sequantial实例名称, 例如阶段:MC1,MC2,...闪光 - AS3并行埃维尔在AS2
现在,在AS2我会做:这[“mc”+ i] (其中“i”表示1-3之间的数字)
我将如何在as3中执行此类操作?
在此先感谢
如果MC1,MC2,位于您的FLA的最顶层,并且没有其他剪辑波纹管他们(例如MC1有了深度(指数)1,MC2具有指数2等) 你可以使用getChildAt();
for(var i:int = 1 ; i < 3 ; i++){
var clip:MovieClip = MovieClip(getChildAt(i));
}
,如果你不知道的深度管理,仅举短片(如果他们在舞台上,给他们实例名称,如果他们在运行时创建,使用name属性(mc1.name = 'MC1'))
,并使用getChildByName(),让他们
for(var i:int = 1 ; i < 3 ; i++){
var clip:MovieClip = MovieClip(getChildByName('mc'+i));
trace(' got clip named: ' + clip.name);
}
我敢肯定有很多resouces如果你只是谷歌AS2 AS3迁移
这不是所以极其简单了,因为在AS2 ......你必须使用DisplayObjectContainer::getChildByName
,所以像
好运气,然后...;)
这个[ “MC” + 1]的作品为了我。
我做了一个名为MC1,MC2和MC3 3个影片剪辑,并将它们放置在x = 100,200,和300
for (var i:int = 1; i <= 3; ++i) {
var mymc:MovieClip = this["mc" + i];
trace(mymc + ".x = " + mymc.x)
}
打印出
[object MovieClip].x = 100
[object MovieClip].x = 200
[object MovieClip].x = 300
this["mc" + i]
将工作,如果mc1
是this
对象所属的类的实例变量。可以使用方括号语法来代替AS3中的点语法(尽管不建议这样做,因为它会将编译器错误转化为运行时错误)。
下面的语句是等价的:
this.mc1.width = 100;
this["mc1"].width = 100;
示例代码甚至不使用 “EVAL”。你可以在AS3中运行它而不需要改变任何东西。 – fenomas 2009-09-01 06:54:08