ActionScript 2.0 :: Show Instance Name As In Properties On Stage
Jan 30, 2012
I am using this code to iterate through the contents of a movieclip which contains instances of "alien2" - my alien. I have each alien in a movieclip called squadron1. They all have their own layer and follow a motion path to recreate the attack sequence in Galaga. I can add action script to them by right clicking on them, but when I do this test below I can't call any MovieClip methods on them. It is my intention to add a function to each one via code to make it detect bullets, look for the player etc, but at the moment all I can do is add the code to each one individually on the stage.
Code:
var target;
for(var item in _root){
if(_root[item] instanceof MovieClip ){
target = _root[item];
[Code] .....
I am wrapping my brain around OOP in AS2. I am making two posts on two different subjects. My question here is: when should I use local instance variables, and when should I attach new properties to the instance object? (Feel free to correct my terminology.) Let's say I have a class for a scrolling background, which scrolls when I mouse over its edge. I want to put these values somewhere:
1) How wide is the border in which a mouseOver makes it scroll? This is basically a semi-constant I set it up once and keep it the same, unless the user changes it in an options menu to make the border wider or narrower. Call this scrollBorderWidth.
2) How fast is the background scrolling now? I want to track this so I can smoothly change the scroll speed over several frames. This is often changed. Call this scrollSpeed.
It seems I have two ways I can store and access these values and darned if I know which is better practice. METHOD A: Make them local variables in the class, so the scrolling background instance has them as local vars. I set them up thusly:
I'm having a little trouble with the properties of an instance of a specific class. Here's and example of the code I am using:
Code: package { import flash.display.MovieClip; import flash.events.*; public dynamic class Circle1 extends MovieClip { private var _root:Object; [Code] .....
This is in the class code for Circle1. Now here is the error that is being displayed int he Output Box when I try to run the file: Code: TypeError: Error #1010: A term is undefined and has no properties. at Circle1/eFrame()
Here's the code that creates the two class instances as children on the Main Time Line: Code: if (spaceDown) { var newCircle1:Circle1=new Circle1(); addChild(newCircle1); } if (enterDown) { var newCircle2:Circle2=new Circle2(); addChild(newCircle2); } EnterDown is a defined variable for the key press of Enter, and spaceDown is a defined variable for the key press of Space.
Through searching the various forums I have found that Loaders are not dynamic and hence you can not apply custom properties to each instance of them. I miss the old way (as2 way of attachingMovieClip) that you load dynamic content, at least you can apply custom properties, and you can always reference them for each object.What I'm trying to do is load a group of Images via XML. Each one of those images have a set of information that is associated with them (name, description, etc). I have the images loading in and positioning just fine, however when trying to have a tooltip show the name on Mouse Over, I'm not able to achieve this.
In short. I want to be able to store information for each item so that I can access it. Is there a way to do this in AS3 with a Loader or is there another route I can go? If I do this with Arrays, how do I store the Index of the specific item so I can use that in reference to the position in each array?** Should I use getChildIndex() in the function for the Event Listener to reference the data stored in the arrays for each item? If so, how do I do so? ***
PHP Code: num = 0;var titleArray:new Array();function createImage(){ var thumb:Loader = new Loader; thumb.load(new URLRequest(url);
where the Alpha Value is located? It is not show up on the properties menu. I'm trying to animate and object to fade in and out similar to this walk through. CS flash 5 seems be different.
I have a Matrix which I recycle and use for drawing DisplayObject instances onto a Bitmap. At the moment, I reset the Matrix before I render each item, like this: _matrix.a = 1; _matrix.b = 0; _matrix.c = 0; _matrix.d = 1; _matrix.tx = 0; _matrix.ty = 0;
Would it be better to do the above, or to simply do this?: _matrix = new Matrix(); Generally I would say the former, however I'm unsure if in the case of Matrix there is some heavy stuff going on for each of those properties that I reset (mathematically).
If I have a textfield instanciated from the document class with a base .string set as for example "4444" and BEFORE adding it to stage, I change the .string value to say "1234", when I test the swf, I can see the 4444 for a very short time changing for the 1234.I didn't change the value after adding to stage so I don't get why the display number is changed after being added to display.How to force it to add to stage (display itself) only once the initial changes to his properties are done?
I have some code that adds a child using addChild(dragsquare); dragsquare is what I used as the class for a movieclip, mcsquare.
Everytime a child is added to the stage, it is called: ObjectX The "X" increments everytime a new object is added using ++objNum.
E.g:
Object1 Object2 Object3
etc...
When the child is added to the stage, it can be dragged, resized, rotated, etc...
I have used this code so when someone clicks the "save" button it loops through all objects on stage (increasing the last number by 1 to get the next object) and finding their properties. Here is the code I have used.
ActionScript Code:
Code: save.addEventListener(MouseEvent.MOUSE_UP, saveObjects); function saveObjects(event:MouseEvent):void { for (var i:uint=0; i<numChildren-23; i++) {
[Code]....
23 children already exist on stage so I have to minus that number to get whatever is added on stage by the user.
However, scaleX is getting the childs ORIGINAL properties and not its current stage properties (where it has been resized, rotated etc..) and only returns a 1 for scaleX. How would I make it track the properties it has on stage?
or if i'm using Flash Professional, i can simply set these properties for the document in the UI.
while the Stage class offers the ability to set a frameRate and override width and height thru properties in actionscript, why is it not possible to set the background color of the stage the same way?
Stage doesn't have a property (public or otherwise) for background color. can anyone explain why that is? it seems strange to me but i'm assuming there is a good reason rather than this simply being a oversight.
I have an object on my stage, called obj.I also have a class called "Physics" which contains a bunch of methods for physics, such as inertia, gravity, and bouncing off walls. In order to do some of these,I need access to the stage.stageWidth and stageHeight properties.My code is as follows:
public function wallBounce(obj) { this.stageRef = stageRef[code]...
This is supposed to check if the object's x value is greater than the stageWidth or less than 0. When I run this code it says:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
I am a semi-newbie programmer who is completely self-taught and have no clue what is causing this. I spent a bit googling it, and I think it has something to do with scopes,.
If I have a swf that's being loaded into other peoples' swfs (which I have no control over) is there any way I can get properties from the stage (such as height, width, fullScreenHeight, etc.) or does this have to be exposed by the loading swf?
I am trying to access a property that belongs to the stage, from a class. For example, let's say I add a textfield with an instance name of "magic_txt" on the stage. In the Document Class, I am able to access magic_txt and update the field like so:
magic_txt.text = "Magic Text"
However, since I would like to work in classes, I am having a difficult time figuring out how to access the property "magic_txt.text" from a class. I know I need a reference, but I am unsure how to set this reference.
I am coming from a strong background in Visual Basic, and in Visual Basic, the way to access a form property is to call the form name (dot) object. In actionscript, it doesn't seem to be as simple.
is there a way to override a MovieClip's parent and stage properties? In a custom class extending the MovieClip class we can override the get parent() and get stage() methods. But is there a way to do it to existing MovieClip?
I mean I have an external swf content (loaded) and assigned to a movieClip. But now, how can I assign the loaded MovieClip to my custom class, so that it "doesn't see" the parent and stage properties?
Or can I override functions of existing classes? Sth like:
override public function myMovieClip["get parent"]():DisplayObjectContainer { ... }
I just need to prevent a loaded MovieClip from having access to the main movie's stage.
How do I access Stage Class properties in Custom Class? Class: package { import Main; import flash.events.*; import flash.display.Sprite; import flash.display.Stage; public class Run extends Sprite { [Code] ....
Output: TypeError: Error #1009: Cannot access a property or method of a null object reference.
I have made a very simple swf in which I have a MovieClip which I have rotated on the stage. When I try to access this rotationX and rotationY properties of this clip using the constructor of the class assigned to this MovieClip they are coming back as 0 even though they shouldn't be. If I put an on rollover event of the MovieClip and trace out these properties here I get the correct values.
1) In my program, I am wanting to create a function that would take in the height and width of a loader object, compare them to the stage dimensions, and then scale the object in question before it is added to the display list. However, I have several different types of classes that I want to make use of this functionality. So what would be better, to create a NEW class that would have to be created each time a resize needed to occur, and is imported by all needed classes, or just have a function within each already existing object and copy that function to every class's scope that needs it? Would this be resolved by placing the function in question inside of the default package?
2) When accessing stage properties, are they a global or a relative scope? i.e.[code]would those two statements produce the same value regardless of whether they were in the default package or inside of 1300 classes? Or is the stage scope relative to some degree?
I am getting a stack overflow error when attempting what I believe is a very simple task. I have a class that extends MovieClip and I attempt to add an instance to the stage. WorkSamples is the main class in my fla.
[Code]...
The Sample object does get added to the stage, although it doesn't honor the x & y position I specify. I'm sure I'm failing to comprehend something simple,