ActionScript 3.0 :: Creating Instances Of A Class Using A Loop
Oct 30, 2010
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.
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]...
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?
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 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 want to know how to make class instances into listeners and broadcasters, from inside each class. Here is what I am trying specifically... part of the Proj class... (projectiles, as a matter of fact)
Code: private function listen():Void { u.register(this); onUpdate = function(){ step(); // a function I have which makes the projectile move (not shown) } }
where "u" is another class, the Updater class with this code...
Code: class Updater { // const. --- make this a broadcaster public function Updater(){
[code]....
PS: What is the syntax for using AS2 code tags instead of just "[CODE|"?
I'm slightly new to Flash CS3 + AS3 combo, so its more of a lack of practice question. My question stems from the problem described here http:[url].... . Note, its not the same problem, its a new one.The Problem ,So I have multiple library assets (which are on teh stage) and I want to assign similar functionality to all of them.
Attempt 1: So I create the n assets, create a custom class in AS3, link them to Flash CS3 and obviously enough it gives me the error that multiple assets can't be linked to the same class.Obvious enough to understand (well not completely, because from a programmers background it doesn't make sense).
Attempt 2: Same as attempt 1, but instead of linking all the assets to the same class I make the base class the same class, and let the derived class be dynamically created by Flash on compile time.So the linking works, but the problem is, in my base class I have a method which does something (say an tween) on a child of the library asset. So if the assets on the stage/library are called asset1, asset2, asset3 (same name for asset name, class name, id name), each of them has a sub-movieclip called ... say 'foo'. now if I manually wrote a class for each asset, I could do 'this.foo' to play with the sub-movieclip. However since this functionality is in the parent class, I'm unable to do it.
P.S. If you're form a programming/OOP background, its basically a abstract class problem. My Base class knows how to doSomething(), but it needs aSomething, which is defined in the Derived classes. However I found out that AS3 classes don't support virtual(C++ )/abstract (Java) in the true sense of the word (unless I missed some obvious documentation).
Been struggling with the basics of creating instances at runtime. I needed to implement an XML video player and even though the client has supplied a component that they liked and it works fine, i cant turn it off as im not sure how the thing works. Basically the timeline hits a keyframe and stops. It runs the code to make the player popup but once the user has exited, the player stays on.If the function creates an instance for flv playback... how do i tell it to stop?
function below function makePlayer ():void { my_player = new FLVPlayback();[code].........
I'm having trouble creating instances of an object, I want a random number to be generated and then based on the number which was choosen create an instance of an object in one of four positions.The problem I'm having is, my instances are generated fine but there is one that keeps jumping to x 0 and y 0.[code]
I've been hitting dead ends while programming lately all over, and I finally came to the realization all the code I have that is broken is because I don't know how to interact with instances of one class from within another. Here's the gist of what I am trying to do:
The problem is, if I address a single instance that is on the canvas, I get "access to undefined property targetClip", even though the document class can interact with it fine. If I target the class file of targetClip, I get "Implicit coercion of a value of type Class to an unrelated type flash.display:DisplayObject". It isn't just a problem with hitTest either, I'm having this problem with other actions, so there is some basic syntax I'm failing to comprehend.
- 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 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 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 having trouble creating multiple instances of one movieclip. I've got an array set up that loads photos into flash and places them in a grid (sort of). I want those photos to have outlines around them. So, i created an outline. Now, when i try to place it on all of the photos, it will run through them and only apply itself to the latest photo (one instance overwrites the others). How do i make multiples of the outline?
I am working on a project in which I need to create a bunch of buttons.. all need to look the same with different text on the button.. rather then making each button separate in my library I would like to make one and create instances of the one button. I have created a button with a text field on top named txtLabel with a default text of "Label Here". I have dragged an instance of the button onto the stage and named it btnHome btnHome.txtLabel.text = "Home"; d Does not work..
I get the following error TypeError: Error #1009: Cannot access a property or method of a null object reference. at MyProject_fla::MainTimeline/frame1()
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.
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 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?
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?
I have a movie clip 'sliderMc' which contains two other clips 'slider' and 'groove'. I've used actionscript to make the 'slider' clip move along the 'groove' and display the value of the at each point in a text field. The idea is to have a slider object that i can use multiple times. I want a situation whereby I can create instances of 'sliderMc' so that I'll be able to move the slider on the individual clips and have each slider update different variables which would then be sent to an XML file or php. Im able tp talk back and forth between php and xml with no problem; The issue I'm facing is that after creating multiple instances of 'sliderMc', I'm not able to give the 'slider' and 'groove' movie clips different instance names without changing the instance names of all other 'slider' and 'groove' instances of 'sliderMc'. Which in turn makes it difficult to distinguish between the different sliders in actionscript.
I create X instances of a class (called SM) depending on a varibale I have (called here howmany), but later on as I want to check their states with a while, I need to have diferent instances names (sm1,sm2,sm3...).[code]