ActionScript 2.0 :: Use A Loop To Add Movieclips Dynamically
Oct 29, 2007
I have a little problem with a loop. I recieve som data from a database and gets it back as an array. I then use a loop to add movieclips dynamicly and this works fine to, but if i try to trace the id from an onRelease function i get an undefines, but when i dot it outside the onRelease it works fine. This is the code. Its in a class by the way.
I am reading in collection objects from an XML file. Each collection has an img field that stores a URL to the collection image. So I am trying to load the images of each collection, storing each image in a MovieClip, and add these MovieClips to the stage. However, my problem is that after adding a MovieClip (with the collection image) to the stage, when a new MovieClip is created in my 'for each' loop it overrites the previous MovieClip. So the images I am adding to the stage are being replaced by the following collection's image on each loop iteration. What can I do to avoid this?
I am reading in collection objects from an XML file. Each collection has an img field that stores a URL to the collection image. So I am trying to load the images of each collection, storing each image in a MovieClip, and add these MovieClips to the stage. However, my problem is that after adding a MovieClip (with the collection image) to the stage, when a new MovieClip is created in my 'for each' loop it overrites the previous MovieClip. So the images I am adding to the stage are being replaced by the following collection's image on each loop iteration. What can I do to avoid this?
Here is my code...
var collXML:XML = IXml(assets.collections).xml; var collNodes:XMLList = collXML.children(); for each (var collInfo:XML in collNodes) {
I using a loop to dynamically create some movieclips and then position them using the ._height and .width values.
When they are created I use a Listener and LoadInit, to check that everything has loaded. I do this because I want to be able to access the ._height properties of the movieclip in order to place them next to each other and centre them vertically.
If I place the following 3 lines outside the function:
inBead._x = currentPosition; //gets the start position currentPosition = currentPosition+Number(mainLoader._width); //gets the position and adds the width of the movieclip
I've got a movieclip(we'll call this "A") on my stage, which attaches another movieclip("B") into itself. So it's nested.Now, once this movieclip("A") has attached the other movieclip("B") into itself,It uses a "gotoAndStop()" to send the frame of movieClip("B") to the right frame, eg. frame 2. Then it runs a loop which checks for all movieclips in "B" and populates an Array.The script I'm using for this is :
Code: for (var i=0; i<h.numChildren; i++) {// This loop is suppose to populate my "bitArray" Array with all of the attached clip's childclips if (h.getChildAt(i) is MovieClip) {[code]....
if there were 22 MovieClips on frame 2 in movieClip"B" , this code would still be able to populate my array with all 22 clips right?It doesn't. For some reason, if there were 22 clips, then out of the 22, the loop would only pick up 9. However, doing a trace with numChildren() in movieClip"B", it would still show 22. But my array would only show 9.I've attached a sample fla, I think it would explain my problem a lot better.Once you run it, it should spit out an output telling you how many movieclips in the attached movieclip, and it'll tell you how many clips it pushed onto the array.I can't seem to get the number of movieclips in my array to equal the number of clips in total inside my attached movieclip.
I'm trying to create an accordion menu that contains three submenus. The idea is that when you mouseover one submenu (or rectangle, to keep it simple) that the rectangles which were previously covering it will move to reveal it. Menus of this type can be found at the bottom of nvidia's site [URL] for reference.
At first I tried creating each function, which will make the rectangles move, separately but this resulted in three very repetitive functions and there seemed like there should be a better way, especially since I'd like a good way to add and remove submenus. The animation did work then. I tried to clean it up by creating a for loop that would move each rectangle but now, for some reason, it doesn't work. It is still missing some key points such as utilizing the mOver variable to figure out when each rectangle is moused over and act appropriatly
Is there a way I can create these clips and add them to an array in a loop ? It doesn't seem to want to work for me.. ?
var p1 = new P1; var p2 = new P2; var p3 = new P3; var p4 = new P4; var p5 = new P5; var p6 = new P6; var p7 = new P7; var p8 = new P8; var p9 = new P9; var p10 = new P10; var p11 = new P11; var p12 = new P12; var p13 = new P13; var p14 = new P14; var p15 = new P15; var p16 = new P16; var p17 = new P17; var p18 = new P18; var p19 = new P19; var p20 = new P20;
I have 6 movieclips named answer1, answer2, etc. I also have a for loop where I want to assign functions to each one programatically. In my loop if I'm using var i, I wanted to refer to each movieclip with something like answer + i to refer to answer1 (assuming i = 1, for example). However, I don't know the syntax to do this.
i want to loop through movieClips like in AS2; i have some movieClips and Components on the stage.i want loop through them to check their properties. i had used [ getChildName ] method to get the movie clips ,but i can't access their properities.
here's my code
Quote:
for(var i=1;i<=4;i++) { var tempisplayObject = getChildByName("my_mc"+i); trace(temp.currentLabel); }
when i run this code i am getting error like this
Scene 1, Layer 'Layer 2', Frame 1, Line 251119: Access of possibly undefined property currentLabel through a reference with static type flash.displayisplayObject. i am getting the same error also when i access to components.
I have a loop that places 5 movie clips on the stage and they all start playing at the same time. I want to see if i can use the loop variable to offset the movie clips so they are all out of sync.Delay movieclips in loop from each other?
I've been trying to use a for loop to attach a few movie clips to the stage in vain. I couldn't find any relevant examples in neither my flash manual nor the flash help nor the internet.I have a few movie clips (let's say five) that I have created manually. I want to attach them to the stage using the for loop.If I had to attach a single instance, I would do it as follows:
Im working on an Xbox Live flash gamercard. Ive ran into a problem. I can't position each of the MovieClips ive genereated from the loop. I get the error:
Code: Select all1120: Access of undefined property rpg0. 1120: Access of undefined property rpg1. 1120: Access of undefined property rpg2.
I have 5 movie clips, currently and I am positioning them via actionscript. The instance names are nar, mv, dance, bio, clients, contact. (pretty obvious this is navigation for a portfolio site?)
Here is the positioning I currently have... Code: var spacing = (((Stage.width*.75) - (nar._width + mv._width + dance._width + bio._width + clients._width + contact._width))/5); nar._x = 10; mv._x = 10+nar._width+spacing; dance._x = 10+nar._width+mv._width+(spacing*2); bio._x = 10+nar._width+mv._width+dance._width+(spacing*3); clients._x = 10+nar._width+mv._width+dance._width+bio._width+(spacing*4); contact._x = 10 + nar._width + mv._width + dance._width + bio._width + clients._width + (spacing*5);
Now, I know that this can be done with an array and a loop, something like, loop through all movie clips for width, then use the total in the spacing variable, then for each clip in the array, set the _x to 10 + the width of the clips before it + spacing times its array position, but man, I can just NOT figure out the syntax.
We have found that if you skip over frames that include nested movieclips with embedded timeline sounds, those sounds loop endlessly.For example, if you gotoAndStop(20) from frame 2, but frames 5-10 have a CLIP A that embeds CLIP B, which has a timeline sound, you hear that sound over and over again (even though the playback head never touched the frames with that clip).Does anyone have a convenient workaround (other than the obvious -- playing sounds dynamically, etc). For animation-sync reasons we need to use timeline sounds in this particular case.
Ok, I've been climbing the walls trying to figure this out, looked everywhere for an answer, learned a few bits and pieces along the way, but still can't do it.I've made my Class which is a little movieclip called 'block', it's fine and does what I tell it to do ie. I can reposition itstretch itotate it and stuff.The problem is.. I want to make more of them and reference them individualy so I can change the properties of them individualy ie, the x and y values etc.
for (var i=0; i<2; i++){ var newBlock:blocks = new blocks(); this.addChild(newBlock);
I am new to Action Scripting 3 and am struggling to create movieclips in a for loop. Basically I am trying to create a series for movieclips and add these to my stage based on an array of values.
I have done this same thing in ActionScript 3, but am not familiar with ActionScript 2, which I am forced to use for this project. I am loading products into a SWF via XML and attempting to add a click event to each dynamically-created movieclip. Simply tracing the text from a node in XML will do for now. I'd like to assign a property called "desc" or "description" to each movieclip and have it trace that property's value when clicked. Here is the relevant portion of my code as it stands[code]...
I realized that you cannot make duplicates of movieclips that have loaded images, so here I am with bitmapData to solve the trick but I cannot get it to render all the movie clips from the loop.
ActionScript Code: XMLParser.load("resources/images/file.xml", onFinish, null, false, true); function onFinish($success:Boolean, $parsedObject:Object, $xml:XML) { var Items:Array = $parsedObject.item; for (var i:Number = 0; i <= nTotalItems; i++) { [Code] .....
I simply want to be able to access 3 already created, but not yet added movieclips using a loop. I've tried a few code combination but can't figure out the syntax.[code]
there is something i just dont get regarding motion with multiple movieclips (from a for loop). I have tried many different approaches, and every time there is either all the clips move in the same direction, other times they only move one direction, other times when i get individual motion for each object they dont move smooth, and seems more too move very slowly across the scene but rapidly back and forth in a small area. I dont have any specific code to show, but does anyone have tips or a place to direct me, cause i dont understand the logic of it, however i want to understand.
i'm having a problem with a for loop. The problem is that it doesn't create multiple movieclips with an unique instance, i think it copies over itself.
for( var i = 1, x = -20; i < 4; i++){ if(this['plaatje' +i] != undefined){ _root.again.createEmptyMovieClip("image", i);
Everytime I press a movieClip, i -1(on the output window) should be equal to the number of the movieClip (ex: myClip17, when pressed, should produce in the output window a value of 17 for i-1). Please copy paste this code to a flash document and you'll see what I mean (please don't forget that you have to have linkage in the library for a movieClip symbol that you have to create - it's a circle only with stroke that has w=15 h=15). Every time I click on a number it should appear a circle on it. If the circle is already there it should disappear. But that's not the case. Somehow every movieClip has the order to attach one of the instances of movieclip marca_mc to myClip31.
I'd like to have my movie clips on the stage and run a loop to return their x and y positions, these positions will be stored in an array (startPos:Array) for use later in some other script. I have 7 movieclips on the stage, each with an instance name startobj[a number]
AS2.. Nice all works: var numberOfElements:Number = 7; var startPos:Array = new Array(); for (var i:Number = 0; i<numberOfElements; i++) { var startObjs = eval("startobj"+[i]); [Code] .....
But when I trace all I get is 0,0,0,0. Is this something to do with in AS3 there is no connection between names and things?
I'm having troubble with the .onPress function. I've made an array of movieclips, and i want to go through them in a loop, and make an onPress function for each of them. What im trying to do with the code below is to make the debugText tell me what movieclip i pressed:
Basically I have 5 movieclips I want positioned around the stage. So I figure the best way to this is with a for loop. However the way I've coded it doesn't appear to add new movieclips and seems to just move the first movieclip 5 times and it always ends up with an x of 169. Here's my code:
Code: for (i=0; i<5; i++){ var barName:MovieClip = _root.game.attachMovie("butSquare","r1wBar"+i,_root.getNextHighestDepth());