-
Dynamic Variable Reference To Movie Clips, Counting Instances?
Hello,
I'm adding movie clips (squares) using addChild. I'm also adding sub-clips (circles) to the main square clip.
Then, to reference those movie clips, I'm using a "dynamic variable" method, for easier coding (i.e., holderObject["as1"], holderObject["as2"], etc.).
The problem is that I'm trying to read the number of objects in holderObject. When I use holderObject.numChildren, it returns 0.
Is there an easy way to get the number of objects in holderObject, similar to an array (holderObject.length)? Thank you.
Code:
// MC1 is a square-shaped object; MC2 is a circle-shaped object
var holderObject:MovieClip = new MovieClip();
// Add first main object
var tempObject1:MC1 = new MC1();
addChild(tempObject1);
holderObject["as1"] = tempObject1;
// Add child object to first main object
var tempCircle1:MC2 = new MC2();
holderObject["as1"].addChild(tempCircle1);
holderObject["as1"].circle = tempCircle1;
// Position objects
holderObject["as1"].x = 50;
holderObject["as1"].circle.x = -10;
// Add second main object
var tempObject2:MC1 = new MC1();
addChild(tempObject2);
holderObject["as2"] = tempObject2;
// Add child object to second main object
var tempCircle2:MC2 = new MC2();
holderObject["as2"].addChild(tempCircle2);
holderObject["as2"].circle = tempCircle2;
// Position objects
holderObject["as2"].x = 250;
holderObject["as2"].circle.x = 50;
trace (holderObject.numChildren);
-
.
Hi,
You are not adding any children to holderObject by all accounts;
PHP Code:
trace(holderObject.numChildren);
trace(holderObject["as1"].numChildren);
trace(holderObject["as2"].numChildren);
PHP Code:
// MC1 is a square-shaped object; MC2 is a circle-shaped object
var holderObject:MovieClip = new MovieClip();
// Add first main object
var tempObject1:MC1 = new MC1();
addChild(tempObject1);
holderObject["as1"] = tempObject1;
// Add child object to first main object
var tempCircle1:MC2 = new MC2();
holderObject["as1"].addChild(tempCircle1);
holderObject["as1"].circle = tempCircle1;
// Position objects
holderObject["as1"].x = 50;
holderObject["as1"].circle.x = -10;
// Add second main object
var tempObject2:MC1 = new MC1();
addChild(tempObject2);
holderObject["as2"] = tempObject2;
// Add child object to second main object
var tempCircle2:MC2 = new MC2();
holderObject["as2"].addChild(tempCircle2);
holderObject["as2"].circle = tempCircle2;
// Position objects
holderObject["as2"].x = 250;
holderObject["as2"].circle.x = 50;
holderObject.addChild(tempObject1);
holderObject.addChild(tempObject2);
trace(holderObject.numChildren);
trace(holderObject["as1"].numChildren);
trace(holderObject["as2"].numChildren);
-
Thanks, Fruitbeard.
Overall, I've never understood the "array-like" notation of holderObject["xxx"] to make variable variables. It's not addressed in any of my Flash books, and I've never found a decent explanation on the web.
All I'm trying to do is generate objects dynamically and have a way to track them, delete them, add them, etc. I'll use the method you show, with holderObject.addChild(tempObject1).
If you know of a better way to generate objects dynamically and track them, I'd appreciate your thoughts. Much appreciated -- thank you again.
Last edited by smcneilly; 04-30-2016 at 01:09 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|