ActionScript 2.0 :: Array In Multiple Class Instances Aren't Individual?
Jul 7, 2009
The code works fine, but I am getting unexpected results; the array seems to be shared across multiple instances of the same class? I've coded an example to highlight what is happening:
Code:
import myClass;
var instance:Array = new Array();
instance[0] = new myClass;
[Code].....
keep all objects/arrays separate across multiple instances of the class.
Scenario: Up to 50 instances of a display object are arbitrarily positioned on the stage.Is it better to create listeners for each individual instance or create one single global listener and then somehow find out which instance triggered the listener? If the latter is preferred,Will event.currentTarget tell which instance it was? And should I register the listener to the stage?
Last night I was working on my flash file and I must have changed some setting that has caused all of my buttons, movie clips and graphics to disappear from my Flash CS4 stage. Instead, it shows each instance's actionscript registration on the screen with a small circle. The instances are still there and show up when exported, but I can't see them while I'm editing the file. The static text and basic grapics are fine. Does anyone have an idea what setting might be causing this? I've tried multiple .fla files and had the same problem with all of them.
I am making an AS 2.0 Class for polygons called "Shapes2". Shape2 is basically an array of Vectors (another Class I made) and is built using the function addPoint(x1,y1) to build the shape from a series of points. The points are then converted to vector-edges, etc etc.Here's the long and complicated construction:
Code: var pent:Shape2 = new Shape2(); var rect:Shape2 = new Shape2();
if I comment out either instance, the other is functional when I test it. Trying to do two instances makes rect and pent point to the same array of vectors, but they keep other variables and properties separate, which means rect isn't just pointing directly to pent or visa versa.
i would like to place various instances of the same library object on the stage.
the different instances (0,1,2,...) are meant to be containers for their individual content. hence, each instance (0,1,2,...) is one container and each containter embeds different placeholders (textfields- and image-instances) in itself.
I have a "Window" class, which will create a window with the parameters you specify. One of the functions inside of that class is to place an element inside the window - something such as a text field, button, etc.
Now my issue. I've created two windows with different names, slightly different parameters, etc. I am adding a text field to each one. On the screen, both text fields show up (have borders enabled). I can refer to both windows using getChildByName(), but for one reason or another I can only find one text field using the getChildByName method. The other one will give me an error.... "Cannot access a property or method of a null object reference."This is the code that I use to add a Text Field, keep in mind this is inside the window class:
ActionScript Code: public function element(builder:Object) { switch (builder.type) { case "static_text" :
[code]....
This code is repeated twice, for different windows. The only thing that's different about them is their names, which are slightly different. It seems that whichever text field I add first gets to stay, while an subsequent ones appear on the screen, but I cannot refer to them. I've tried switching around the window definitions and that does seem to be the case.
I am creating multiple instances of a movie class with the same variable name. The movie is then added random on the stage with a tween. On a mouse handler click, i want to remove the movie from the stage.
I am getting error - ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display:isplayObjectContainer/removeChild() at Untitled_fla::MainTimeline/removeBlock()
Code: import gs.TweenLite; import flash.utils.*; var block:block_mc; var myTimer:Timer = new Timer(1000, 15); myTimer.start(); [Code] .....
So I know how to target a specific instance using MovieClip(root).objectName which I think is nasty way of referring to it anyways, but right now I'm trying to make a fighting stick-figure game and I can only refer my code to one NPC right now using an "enemy" class but I would like it if I could spawn multiple NPC's at once using the enemy class and instead target the enemy class instead of the instance itself while still having the NPC instances being unique so when I hit one they don't all get hit.
I'm creating an image loader with a specific effects that requires layering multiple masks over the same movieclip. in the timeline it looks like this:
What I want to do is add an instance of the loaded image into each of these masked movieclips. I'm trying this:
create a new instance of the loader and store it in an Array
Code: for (var j=0; j<allThumbs.length(); j++) { imgLoader = new Loader(); img_arr.push(imgLoader);
[Code]....
The only way I've been able to get this to work is to create an entirely new Loader object for each movieclip instance. Doing it this way loads the same image 4 times... that's not acceptable.
how I can store the image that is loaded and reuse it in the different movieclip instances?
I have been looking to see if it is possible to force an array's elements to only be instances of a specific class. Is it possible in AS? If not could the same result be achived with my own custom object?
why i keep getting Parameter child must be non-null. And my code won't display 5 enemyBlock objects onto the stage but only just one.
returns: TypeError: Error #2007: Parameter child must be non-null. at flash.display::DisplayObjectContainer/addChild() at flash.display::Stage/addChild()
ActionScript Code: stop(); var xmlRequest:URLRequest= new URLRequest("graphicImages.xml"); var xmlLoader:URLLoader = new URLLoader(xmlRequest);
[Code]....
So I figured that the coding of separate scenes would work independently of one another, but I guess I was dead wrong, because when I apply this to a different scene and change the XML path for a different set of images, I get all sorts of conflict errors when I test the entire movie. I have my flash film set up so that each link send the user to a different scene, which plays a unique intro for each, and then the slideshow appears on screen and the viewer can navigate the images.
Is there a work around for this? Or am I going to have to break my flash movie into separate movies? Or should I just add a suffix to all my vars and functions so that they are unique for each scene?
Code: Frame44 var newstudent:String = NewFishInput.text; var sl:SharedObject = SharedObject.getLocal("studentlist"); if(sl.data.hasOwnProperty('name')){ sl.data.name.push(newstudent); [Code] .....
I have sharedobjects with names as above, i.e. there is a sharedobject name Jack, Another named Russell, etc. What I am trying to accomplish is to retrieve the student's name in SharedObject (studentlist) and use it to retrieve information in each individual's SharedObject.
I am trying to set variables from an array. I want my variables to be named Pic1, Pic2 etc. (according to how many values are in the array).This is code from the "parsing external array data" tutorial**
files = new Array(); lv = new LoadVars(); lv.onLoad = function() {[code].....
I have a project where I've been asked to allow a user to choose between multple color themes of a character. This object is complex in that it has multiple colors and that each color needs to change differently based on the theme's color scheme.
Is there a way to take a movieclip with multiple colors and apply process to it that will detect different colors and transform them accordingly without taking each individual color, making a movie clip from it, then modifying the movieclip's colors? Each character has a pretty limited color pallette, so this process would only have to find and then change maybe 3 or 4 colors. But the character in question is hand animated and has a LOT of frames, so I'm hoping there's a chance that I can handle this programmatically rather than doing it all by hand with a few hundred extra movieclips to make color changes to.
var glideShootingTimer:Timer = new Timer (500); glideShootingTimer.start(); glideShootingTimer.addEventListener(TimerEvent.TIMER, glideShoot);
[code]....
What it does:Every half second create a torpedo underneath every "glide" sprite on the stage.What is wrong:Every "glide" fires at the same time as the others.What I need:A way to individually time the firing. A way to make it fire in independent half second intervals, not all at once.
I used var dp:ArrayCollection = new ArrayCollection(container.GetVotesResult); to get the JSON data from GetVotesResult method. I get the values as below.
[Code].....
How do I retrieve the 2nd, 3rd, 4th and so on (if it has) array datas individually and dynamically. Say, I want to take 'Atext' from all the array.
I have 5 text files that contain a list of 50 items in each file.
I want to bring that information into a datagrid; 1 column per text file. I'd also like to extend the code to add more columns when new files are created.
I was able to bring in one column, but maybe an approach with xml, an xml connector and dataset would be better.
Here is the code so far:
Code: var PATH:String = "10-12-09.txt"; var extIndex:Number = PATH.lastIndexOf( '.' ); var extless:String = PATH.substr( 0, extIndex );
I've gotten as far as getting a listbox with a list of articles to display the articles in a dynamic text box, only i can only get it to work if i use one huge external text file that contains all the articles. what i want is to have each item on the list open up its own external text file, i.e. for each item on the list, there exists a separate text file. I'm about ready to put my fist through the monitor, and that would suck because this is a really nice monitor
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).
I've been looking for a JSFL command that might do this, but haven't come across anything even remotely similar to what I'm trying to achieve. Perhaps there is another solution besides JSFL that someone might know of.Question: Is there a way that I can select multiple symbols (either in a single frame or across multiple frames) and apply a scale transform that will adhere to each symbol's registration point?
Scenario:In an animation sequence, a movieclip of a tall rectangle is tweened on the timeline using "classic" tween. There are 20keyframes, where the mc changes position and rotation.In a duplicate of that animation sequence, I want to change the height of all instances of the mc in the animation, but keep the position and rotation. The rectangle should stay a rectangle, only shorter.I go to a keyframe, select the mc, and enter the desired scale percentage for the height in the transform pane. Then I repeat this for the other 19 keyframes. Imagine the pain and suffering I go through when this is done for several sequences!
Ideally,I would want to use the "edit multiple frame" mode in the timeline, select all instances of the mc across all 20 keyframes, and apply the height transform to all mcs via JSFL or dark magic.Flash's default behavior transforms multiple objects as a group,so not only will it squash and shear the different mc instances(creating diamonds),it will also shrink the distances between the different positions(changing the path of the tweens).I'm looking for a way to apply the transform so that each instance scales to their own registration point,preserving their position and respective of their rotation.