Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在ActionScript3中,如何通过循环语句创建movieclips?_Actionscript 3_Flash_Loops - Fatal编程技术网

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);
}