ActionScript 3.0 :: Using Loop To Create Object Instances?
Oct 21, 2010
Here's a piece of script I would like to condense into a single loop where the number of instances created would be dynamic:
Actionscript Code:
//create instances of Door objectvar door_1:Door = new Door();var door_2:Door = new Door();var door_3:Door = new Door();var door_4:Door = new Door();var door_5:Door = new
I'm trying to parse an XML file, and use it to create instances of a custom class the fly in actionscript 2. (can't migrate to 3 for this project).I'm trying to make something happen like:
Code: for (var i:Number=0; var<n; var++) { instanceName="MyObject"+i;[code].....
Which doesn't work.When it's all done, I need to have n objects named MyObject1, MyObject2, ..., MyObject(n).
i am creating a certain amount of instances of a class-object (called Jaar).When i click on one of them, I would like to change a value (isSelected) in all the instances of this class.How can i do this?So far i have this (simplified version) :
I thought would be coded like this: var sp:Sprite = new Sprite(); sp.graphics.beginFill(0xFF88CC); sp.graphics.drawCircle(0, 0, 50);
[Code]....
however, I realize even tho im looping that addChild method, its still adding sp, so do I add a new naming convention in the loop, or should I be adding these instances to another display object.... this seems like such a simple thing to do yet I cant figure it out, I also want to randomize the x and y, but this first seems to be the issue I need to address.
I'v been toying with this for a few weeks now and I'm trying to find the best way to animate several instances of an object created by a for loop thru an ENTER_FRAME function.When the function runs only 1 of the 3 instances that were created animates.
var balloonArray:Array = new Array();var balloon: hotAirBalloon;var xVel: Number = -3;var yVel: Number = -4; addEventListener(Event.ENTER_FRAME, startBalloons)
I thought this would be simple but for some reason I'm having all kinds of problems. Why won't the for loop create a new c instance each time the loop increments, like it does for sHolder and s? ...And, assuming it is possible to make it do this, how can each instance be given an identifier that can be accessed dynamically, like sHolder and s in the traceSomething function?
My project downloads an array from a MySQL server that has URLs for pictures in it. Part of my script then downloads these pictures and splices the array (removing the URL and replacing it with the bitmap). Now i need to use those bitmaps on the stage but i need two instances of the same bitmap at the same time, and it seems like flash is having a problem with this.
How do i create two instances of the same array bitmap?
- loop through the Grid array and place each tile on the stage
- assign RedBall a random Grid coordinate and places it on the stage at that coordinate
I want to be able to click RedBall, which will create a border around the tile beneath RedBall, and create borders around the tiles above, below, to the left and to the right. BUT, I don't want to reference the tiles by their distance in pixels from RedBall or from each other; I want to reference the tiles by their coordinates in the Grid array. So I want to:
- get the coordinates of RedBall
- use those same coodinates to reference the tile at the same coordinates in the Grid array
- use the tile's coordinates to reference the tiles above/below/left/right
- apply a border to all these tiles
What's the best way to reference an instance of a tile? Should I apply a name to each instance as it's created in the loop? like myTile.name = "tile"+i+"_"+j; ? If so, how do you reference that instance later? Just tile1_3 ? Do you have to prepend it with root, or stage, or the class it was originally created in? Do you have to use getChildByName? OR, can you still reference it later without having given it a name?
There's 3 boxes I'm indexing through with a timer. They disappear in sequence. How do I make them reappear?
boxes disappear in sequence 1-3
var pink:Array = ["","boxInstance1","boxInstance2","boxInstance3"]; var timer:Timer = new Timer(555); timer.addEventListener(TimerEvent.TIMER, onTimer);
[Code]....
I'm not to particular about the sequence they disappear and appear, but it need to keep going in a loop.
I'm trying to create a vertical column of images in a mc that can be clicked. I've added listeners to reposition them once they load, but right now they are overwriting each other. I'm not sure how to rename the object and listener vars for each iteration. [code]...
I have created 4 movieclips and named (instance) them box1, box2, box3, box4 and shuffled them with the following code: var vector_name:Array = new Array("box1", "box2", "box3", "box4"); function shuffle(a,b):Number { var num : Number = Math.round(Math.random()*2)-1; return num; } var shuffled_vector:Array = vector_name.sort(shuffle); trace(shuffled_vector);
How can I tween the instances using fl.transitions.Tween with a loop. I tried the following but did not work.. btnPlay.addEventListener(MouseEvent.CLICK, startMotion); function startMotion(me:MouseEvent):void { btnPlay.visible = false; for(var j:int = 0; j < 4; j++) { var twSlide:Tween; [Code] ......
I'm very new to Adobe Flash CS5.5. Can you create a common instance EG: "Enemy" and then control it like so: Enemy.x += 1; So that all instances of Enemy will move forward one pixel each frame? Instead of just one enemy? If this is not possible could I set up some sort of array of enemies like you can in C and try something like: int EnemyNo = 1; for(EnemyNo = 1; EnemyNo < 5; EnemyNo++) { Enemy[EnemyNo].x += 1; } Does Flash even support "for" loops?
basically i want to create ten balls on the stage. I have a balls.as file which uses the drawing api to create a circle within it. also within the balls.as file there is a public variable.[code]how would i go about finding out: if you click one of the balls it traces that balls life.
Ok what i want to do is to put MORE than one instance of a MC on stageFor that i try to create a name to the MC inside a (FOR) loop (working)what dident work is to put multiple instance of it on stage.Seem preety basic but i can figure it out
function generateHex(e:MouseEvent) { tileSet.x = tileSize;
- loop through the Grid array and place each tile on the stage - assign RedBall a random Grid coordinate and places it on the stage at that coordinate
I want to be able to click RedBall, which will create a border around the tile beneath RedBall, and create borders around the tiles above, below, to the left and to the right. BUT, I don't want to reference the tiles by their distance in pixels from RedBall or from each other; I want to reference the tiles by their coordinates in the Grid array.So I want to:
- get the coordinates of RedBall - use those same coodinates to reference the tile at the same coordinates in the Grid array - use the tile's coordinates to reference the tiles above/below/left/right - apply a border to all these tiles
What's the best way to reference an instance of a tile? Should I apply a name to each instance as it's created in the loop? like myTile.name = "tile"+i+"_"+j; ? If so, how do you reference that instance later? Just tile1_3 ? Do you have to prepend it with root, or stage, or the class it was originally created in? Do you have to use getChildByName? OR, can you still reference it later without having given it a name?
So I know that if I want to create an instance of a movie clip called part01Roads from the library I do this:
Code: var part01Roads_mc:part01Roads = new part01Roads(); addChild(part01Roads_mc); part01Roads_mc.x = -22379; part01Roads_mc.y = 317;
Well I want to take this one step further if it is at all possible. Lets say I have 100 different movie clips labeled in a sequence: part01Roads, part02Roads, part03Roads ..... part100Roads. Instead of rewriting the above code 100 times, can I make a loop to do this?
In the library of the FLa I have a symbol that is exported for actionscript with a class name of 'aClip'.I am placing multiple instances of it on stage as follows:
Code:
for (var i:int = 0; i < 10; i++) { var myClip:aClip = new aClip(); myClip.x = 0; myClip.y = 50 + (50 * i); }
Each myClip will move across the stage at 1 unit per frame. If I only had 1 instance on the stage I would implement as follows:
Code:
//make an enterFrame listener for the stage this.addEventListener(Event.ENTER_FRAME, moveClip); //make a function for the listener[code]...
The problem I am having, is getting this to work for the multiple instances generated in the for loop.
I recently learned how to use gravity so I made a bouncing balls program but I have an issue with the interaction between the frame timeline code and the class.The problem is that when I create instances with a timer, I declare the variable inside the timer function. And I want to add a blackhole sort of thing when I click down on the stage but I cannot access the object from the blackhole function since it's declared inside the timer.
I have a number of instances of a library object placed directly onto the stage (I don't want to have the code create them since they have to be positioned and scaled individually) want to be able to find all the instances in actionscript and assign them to an array. How do I do that? I think getDefinitionByName is what I need but I can't figure out how to get it to do that.
For example if I wanted to do something like make a function which is used to spawn multiple instances of an enemy movie clip.[code]do this a specified number of times.How would I go about doing something like this? And what is the syntax for referring to these generated movie clips from outside of the movie clip (so i could do things like remove them, change x/y,alpha, ect, individually)I really just don't have an intuition for how movie clips actually work in actionscript, and its been holding me back a great deal.