Actionscript 3 在ActionScript3中,如何通过循环语句创建movieclips?
的语句Actionscript 3 在ActionScript3中,如何通过循环语句创建movieclips?,actionscript-3,flash,loops,Actionscript 3,Flash,Loops,的语句采用三元组作为参数 (初始值i,停止循环的条件,i增量) 每次循环进行时,我想创建一个不同的电影剪辑 所以,我试着: for (i = 0; i < 9; i++){ var Unit+i:MovieClip = new MovieClip() } (i=0;ivar Unit+i将给您一个语法错误 您可以提前创建一个阵列,并将您的对象放入其中(根据@Panzercrisis的,这是完全可以接受的) 其他方法可以做到这一点: 如果当前上下文是动态的(如时间线代码或动态类(如
采用三元组作为参数
(初始值i
,停止循环的条件,i
增量)
每次循环进行时,我想创建一个不同的电影剪辑
所以,我试着:
for (i = 0; i < 9; i++){
var Unit+i:MovieClip = new MovieClip()
}
(i=0;i<9;i++)的{
var单位+i:MOVICLIP=新MOVICLIP()
}
但是,这会触发以下错误:
1086:语法错误:加号前应为分号“
那么,正确的语法是什么?基本上这就是您想要做的:
var arrMovieClips:Array = new Array(9);
for (var i:int = 0; i < arrMovieClips.length; i++)
{
arrMovieClips[i] = new MovieClip();
}
然后它将遍历并循环0、1、2等。当它到达arrMovieClips
的长度9时,它将停止。当它遍历0-8时,它将创建一个新的MovieClip
,并将其存储在每个位置。来解决这个问题。您不能使用var
关键字动态创建一个var。这样做de>var Unit+i
将给您一个语法错误
您可以提前创建一个阵列,并将您的对象放入其中(根据@Panzercrisis的,这是完全可以接受的)
其他方法可以做到这一点:
如果当前上下文是动态的(如时间线代码或动态类(如MovieClip)的一部分),则执行以下操作:
this["Unit"+i] = new MovieClip();
从编译时检查和代码维护的角度来看,我认为这有点草率,但对于快速时间轴项目来说,这当然是可以接受的
除了显示列表外,您也可以不将剪辑存储在任何位置:
for(var i:int=0;i<9;i++){
var mc:MovieClip = new MovieClip();
//do whatever you need to do to the clip
//like draw something for instance
mc.graphics.beginFill(0xFF0000);
mc.graphics.drawRect(0,0,100,100);
addChild(mc); //add to the display list so you can see it
}
for(变量i:int=0;i
for(var i:int=0;i<9;i++){
var mc:MovieClip = new MovieClip();
//do whatever you need to do to the clip
//like draw something for instance
mc.graphics.beginFill(0xFF0000);
mc.graphics.drawRect(0,0,100,100);
addChild(mc); //add to the display list so you can see it
}
var clipContainer:Sprite = new Sprite(); //Sprite is the same as movie clip but without the timeline stuff
addChild(clipContainer);
for(var i:int=0;i<9;i++){
var mc:MovieClip = new MovieClip();
//do whatever you need to do to the clip
//like draw something for instance
mc.graphics.beginFill(0xFF0000);
mc.graphics.drawRect(0,0,100,100);
clipContainer.addChild(mc);
}