I need to set custom variable name for every iteration. Why this isn't possible?
for (var i:uint = 0; i < 50; i++)
{
var ['name' +i] = new Sprite();
}
*//1840: Syntax error: expecting identifier before left bracket*
You want to use a hash map to do this.
var map:Object = {};
for (var i:uint = 0; i < 50; i++)
{
map['name' +i] = new Sprite();
}
Otherwise you're confusing the compiler. Dynamic names for local variables aren't allowed.
There is sort of a way around this, depending on what you're doing. If these clips are all added to stage then you can use the getChildByName method to access them. Your setup would look something like this:
var clips:Array = [];
for (var i:int = 0; i < 100; i++) {
clips[i] = new MovieClip();
clips[i].name = "clip" + i;
addChild(clips[i]);
}
trace (getChildByName("clip2")); // traces [object MovieClip]
This is done by querying the display API, though, so you can't use getChildByName on anything that's not added to a display list somewhere.
Hope that helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With