ActionScript 2.0 :: Possible To Change Instance Name By Way Of Variable?
Sep 13, 2004
Can an instance name change by the way of a variable? In the attached file, I am currently developing a hittest assessment. I want to convert most of these boxes to componets so it is easier for people outside the department to use. However, I am having trouble with the hittest zone. I am using a componet for the hittest zone. It has an instance name of "dropzonetrue".
Then, as of now, I have a variable set up temporarily in the first keyframe as
correct = "true"
dropzone = "dropzone" + correct
In the Test mc, I have code listed using the dropzone variable as the hittest criteria, rather than the instance name of the component. However, it is not working. Is the instance name of the component going to always override the variable name?
How do i correctly change a variable from an instances timeline? I need the variable hero.landing to = true when a particular frame is hit in the timeline.
I used to add the instance simply with addChild(name);
and the AS in the timeline was:
MovieClip(this.parent).hero.attacking = false;
However i add the child to the gamelevel instance like:
gamelevel.addChild(name);
and the code: MovieClip(this.parent).hero.attacking = false;
only temporarily changes the variable, it resets back to its previous immediately after the frame is reached.
For example, hero.attacking is true until it hits a certain frame at which point i want it to be set back to false. However now that i add the child into the gamelevel instance, it only temporarily sets hero.attacking to false, and then resets back to true after.
As we know whent here is no such variable of null value assignment to a variable or instance flash throws this kind of Error.In one of my Application i need to get more flashVariables, They may or maynot come as FLASHVARS. But when i miss any variable flash thows this error as an alert box. is there any simple solution to avoid this kind of issue
when i use try,Catch statement the issue will not come, But i don't like to write Bunch of try,catch statement for all this kind of variables.
Im really new to as3, and im just trying out some stuff, but i cant get a shape to refresh and change when i change its variable using a text field.If i change the text fields text before i test it, it works, but while its running it doesnt change it again.Btw, trying to change the stroke size.[code]i just want is so that when i change the strokeSize_txt text box, it will change the stroke for the shape.
I have been banging my head against a brick wall regarding the following problem which must be very simple to fix, just can't see the answer.I have a class assigned to a movieclip called canvas. The class is called drawClass. I have called the instance of canvas on the stage 'drawingCanvas'.When I trace "drawingCanvas" I get object drawClass] which is fine. Tracing drawingCanvas.name gets me the instance name 'drawingCanvas'.This is a String variable.Basically what I am trying to do is pass the MovieClip name to another class. In my example the class 'toolBar', which can then interact with the MovieClip.
The problem is passing 'drawingCanvas.name' results in a String, so I get an error saying :TypeError: Error #1034: Type Coercion failed: cannot convert "canvasArea" to flash.display.MovieClip.I can't for love or money find a way to convert a String variable to a MovieClip variable! I have the name of the MovieClip, I just need to tell the toolbar class. But I can't find a way of doing this as the instance on stage is an object of drawingClass, not a MovieClip (unless MovieClips with attached classes are not treated as standard MovieClips?).
Ok, I've been at this for 2 days now, and really need some assistance. It seems like it should be so simple!
The part that doesn't work [code]...
Then that button in the root should be able to take the value that is in the variable "critter_pressed_new" and use that as the instance name, to make that particular mc go away.
Simple question: I'm trying to use a variable to call on different instance names:
[Code]...
The code in red is the issue in question. In this example, I'm trying to add a child called "pic_2", with the number two called from the variable "picCaller"
I have multiple inputs which I would like to limit the input on. Not limit to number of characters but limit to the actual input box. The problem is the limit script is not reading the variable I am sending to the function and is returning as undefined.
ActionScript Code: function Limit(SetText){ oKey = new Object(); var __text0:String = "";
I am trying to create an animation that will cycle through letters (each of which have an instance name) by using a loop. I have a variable which it outputting the numbers i need if just used in a tract but i want to add it to the end of the instance name so that each instance scales one after the other. Any way of delaying each one by a few few seconds (or milliseconds if I remember the acrionscript unit of time correctly).
Basically I am having errors when trying to use a variable to set my instance name.
Here is the code:
ActionScript Code: var i:Number = 1; ["button"+i].transform.colorTransform=myColorTransform; //doesn't work button2.transform.colorTransform=myColorTransform;//works
'i' will always carry the button number.
I've tried all the methods I can think of so I am hoping that one of you can give me a hand, if I can figure this out I can probably save a few hundred lines of code in an app I have just started on.
I'm trying to use a variable to call on different instance names:
var picCaller:uint=2; material_mc.addChild(pic_""+picCaller+"");
The code in red is the issue in question. In this example, I'm trying to add a child called "pic_2", with the number two called from the variable "picCaller"
I have a static shopping centre floorplan with movieclips for each unit. There is also a list of the stores fed in from an XML page. When they rollover either the unit on the floorplan or the storename in the list, a little information panel appears for each store. All that's fine.
The problem is I want the corresponding unit to highlight when the text is rolled over and vice versa, but just can't seem to get it to work!!! You would think that would be the easy part. I have a variable - currentunit - which I pass from the onRollover. This is the same as the corresponding instance name of the floorplan unit.
I am trying to create a game in Flash. There are 43 spaces of irregular shape in the game and I already know the X and Y location. I defined them as a class which extends movie clip, I put them on the main timeline to start and I gave them all an instance name. I want to initialize them when I am starting a new game. I defined methods to set and get the properties, those methods work when I use the instance name, but many of the spaces share the same properties. The instance names are all I+some numberm I1, I2, I3. When I try to use a variable name such as space_Id = ("I" + i) to reference the instance name I get an error "Call to a possibly of undefined method. I tried the old actionscript 2 solution of putting an eval function eval (space_id) in front of the method but that didn't work either. It resulted in the same error plus a warning. I1.My_Method (); // works but it would require 20 or so blocks of almost identical code
var space_Id:String = "I1"; space_Id.My_Method (); // doesn't work _root.space_Id.My_Method (); doesn't work
Basically, I'm trying to loop through my sub menu buttons to see if they're on a certain frame. My question deals with an if statement inside a for loop:
if (MovieClip(root).subMenu1.currentFrame == "16") { MovieClip(root).subMenu1.gotoAndStop("out"); }
Is it possible to replace the instance name (subMenu1) with a variable? I tried just replacing it but that didn't work. I also tried adding plus signs around it and that didn't work either.
Im trying to create an animation that will cycle through letters (each of which have an instance name) by using a loop. I have a variable which it outputting the numbers i need if just used in a tract but i want to add it to the end of the instance name so that each instance scales one after the other. delaying each one by a few few seconds (or milliseconds if i remember the acrionscript unit of time correctly).
Ok, I've been at this for 2 days now, and really need some assistance. It seems like it should be so simple! Tried some other web resources but so far no luck.
The part that doesn't work:
Code: on(release){ //None of these work:
[Code]....
which now makes the variable of "critter_pressed_new" have the instance name of the movie clip in it (which, would be _level0.critter_launched_01 or 02).
Then that button in the root should be able to take the value that is in the variable "critter_pressed_new" and use that as the instance name, to make that particular mc go away.
Is it possible to change an object's instance behavior on-the-fly? In other words, can I change the instance of a movie clip object to behave as a graphic through actionscript?
is it possible to dynamically change one instance of an object without effecting the others? I've created an input text field in the library and when the user hits the "add text" button, it adds an instance of the input text field to the display list. They can then format the text how they wish (color,alignment,etc..). When they hit the "add text" button again, a new instance of the input text field is added to the display list, but when they try to format the new input text field, all of the fields are effected. How do I get around this?
I'm trying to access an instance by using a variable but when I try to manipulate a property to the instance (by referring to it with a variable) it only recognizes it as a string... for instance... (pun intended??) public var prevbutton:String = "btn1"; trace(["page"+prevbutton]); // which traces - pagebtn1 trace(pagebtn1); // which traces the instance class - [object btn1pageclass] I want to call the instance by using a variable... how do I do this?
I've got these 150 buttons on my stage which all do the same thing. They test their value against myVariable to see if there's a match. If there is, it's a right answer and the user gets a point. The myVariable may be anything between 1 and 150. I have my button code on a single frame now but I'm looking at duplicating it 150 times (1 for each button instance). This seems a wasteful way of doing things. Is there any way I can extract a variable from the instance name? The buttons named btn1~btn150.
Is there any way to: btn 1~150 onRelease var newVariable = [instance name - "btn"] I guess this requires some way to listen for an instance name.
I have an application I am developing, a part of which involves a number of icons on a page - when you roll your mouse over an icon, the movie moves forward a frame, and a text area is populated with text, fed from a php file (which pulls data from a MySQL database). Each icon pulls in a different value, depending on the values in the php file.
I have this working a treat - see code below. The only problem is I need to create a seperate button / mc for each icon with the appropriate references on - in the code example below, the icon populates message.text - this.message2 - message2 is a value in the php file. So the next symbol would be message3, etc.
on (rollOver) { myData = new LoadVars(); myData.onLoad = function() { message.text = this.message2;
[code]....
I will need a large number of these icons, all with different values, so I would like to create a generic button that looks at it's instance name, and uses this for the numbered variable - i.e. the 2 in "message2".