flash - In Actionscript 3, how do I create movieclips through a looping statement? -
the statement for
takes triple argument
(initial value of i
, condition cease looping, i
increment)
i want create different movie clip each time loop goes on.
so, tried:
for (i = 0; < 9; i++){ var unit+i:movieclip = new movieclip() }
but, triggers following error:
1086: syntax error: expecting semicolon before plus"
what's correct syntax, then?
to address issue. cannot create var dynamically using var
keyword. doing var unit+i
give syntax error.
you can create array ahead of time , put objects in (as per @panzercrisis's answer acceptable).
other ways can this:
if current context dynamic (like if timeline code or part of dynamic class movieclip), this:
this["unit"+i] = new movieclip();
from compile time checking , code maintenance perspective, little sloppy in opinion, quick timeline projects it's acceptable.
you not store clip anywhere display list:
for(var i:int=0;i<9;i++){ var mc:movieclip = new movieclip(); //do whatever need clip //like draw instance mc.graphics.beginfill(0xff0000); mc.graphics.drawrect(0,0,100,100); addchild(mc); //add display list can see }
if never need remove clip, way great.
or, add them container display object
var clipcontainer:sprite = new sprite(); //sprite same movie clip without timeline stuff addchild(clipcontainer); for(var i:int=0;i<9;i++){ var mc:movieclip = new movieclip(); //do whatever need clip //like draw instance mc.graphics.beginfill(0xff0000); mc.graphics.drawrect(0,0,100,100); clipcontainer.addchild(mc); }
the clipcontainer
act same array, can access it's children. also, moving/scalling container in turn move/scale it's children
Comments
Post a Comment