Actionscript 3 :: Flash Automatically Names Objects On Stage "instance#"?
Dec 28, 2010
I have 2 TLF text boxes already placed on my main stage. In the property inspector window I give these the instance names: "txt1" and "txt2".I am trying to have a single mouseup event, and figure out which text box it occurred on.My document class has the following code:
Since the objects are already on the stage, I am not sure how to get flash to recognize them as "txt1" and "txt2" instead of "instance#".I tried setting the .name property, but it had no effect.In the publish settings,I have "Automatically declare stage instances"checked.Also is it possible to have a single change event for multiple slider components? The following never fires:
I worked again on a new Project and stumbled while trying Arrays. I have two cubes(cube_mc, cube2_mc) in my scene.
My code: var gy:Number = 0; var gravity:Number = .2 var moving:Array = new Array(cube_mc, cube2_mc); this.addEventListener(Event.ENTER_FRAME, gravityFUNC); function gravityFUNC(event:Event):void{ gy+=gravity; moving.y+=gy; };
I was trying to put both cubes into the array, and then affecting the whole Array with gravity. When I test it nothing happens, and it shows no errors.
I've got a world map with an instance name of map_mc. Inside map_mc, every country is a movieclip object. So for example, the United States is a movieclip. I'm using the GreenSock tint plugin (TweenPlugin.activate([TintPlugin]) to color transition the countries from white to red.
Here's my goal:
I want to randomly color transition (using Tint) every country from white to red over 20 seconds.
Here's my issue:
Is there a way to do this without having to give each movieclip an instance name, creating an array and randomizing the array. Is there a simple loop I could create that color transitions every movieclip object inside map_mc?
Why and when? Because I addChild to the stage 1000 times but only removeChild 800 times, and even so, stage.numChildren returns to 0 after all my objects have exceeded the stage boundary. I have to mention that I am moving objects from left to right (it's a game) and the object's X and Y properties eventually exceed the stage boundaries. Does something happen automatically then??? Like... events removed or something like that? This is a continuation of this thread of mine, where I initially thought addChildren has issues: [URL].
how to control dynamically created clips... What I've got is a series of objects on the stage, that have been created using an external xml file. here's the code for this...
Code: Select allfor each (var MenuItem:XML in myXML..MenuItem) {
code for setting the clips on the stage, positioning them, etc, } But what that doesn't do is give each clip an individual instance name, so I've no way of controlling them on the stage? I presume I need to create a variable and then loop through the MenuItem xml assigning a unique instance as it goes through it?
I have an API for a flash player that I want to use, but it is closed source. I know I could try a decompiler but I need to see what it loads and what it's doing at runtime.I'd like to see the objects (and all their info) that it loads and has on stage along with thier instance names. I'd like to see what this SWF has/does so I can write my AS3 code accordingly... maybe add some additional event listeners.Is there any was to go about doing this? I know there's some AS3 commands to get this information but I dont know what they are.
I consider myself quite effiicient at actionscripting (ok not a guru) to have such problems by mistake.Anyway, my problem is that i am trying to access an MC through a buttons on rollover & rollout actions. So, the button and the MC are BOTH on the same timeline and stage, on the SAME movie clip, and they both have keyframes at the same frame. However, whenever i try to use something like
I have searched for this but keep getting answers relating to the whole website resizing rather then a certain movieclip or instance etc. I am quite new to flash & action script but i get the idea & have built simple websites before. Publish HTML settings: scale "default(show all)" & have dimensions as a percent. Html & Flash. So everything looks great. I am using slideshow pro which is hidden behind what i want to be a fullscreen thumbnail grid as i couldn't figure out how to use thumbnail grid by itself. Im using it as a full-screen slide to show my photography.
I have one instance of thumbnail grid that i want to fill the browser window. When on a big monitor it doesn't expand to the sides. What code do i need so this instance can change to automatically resize fit the window/ browser/stage. (i can change it to a movieclip possibly if i need to?)
getting angles, of two movieclips that are on my stage. With instance names: circle1,circle2. I read that I should use the function Math.atan2 to get the angle, in radians, then I convert it to degrees, but it doesn't make sense, the angles aren't correct.. Here I paste the code I use (its AS not PHP don't know how to add the AS tags):
What I'm trying to do is dynamically assign instance names to movie clips placed on the stage based on their position on the stage. Say if one had an _x value of 1, i would want to assign that clip the instance name of "clip1" and if another had the _x value of 599, I would want to assign that clip the instance name of "clip599". Logically, I would think it would work like this (placed on each individual movie clip):
I started a thread about a reference to a symbol House, in the output window, which was: House_1. A lot of people said some useful things about that. All day I've been thinking about it, and I came to the conclusion that I don't understand things, at a very basic level.
Consider:I make a movieclip which I give the Symbol name Drawer. (I don't export it for AcitonScript.)On the stage I manually place two instances of this Symbol. The first one I give the Instance Name drawer (in the properties panel). The second one I leave nameless.Now if I trace the names of both these clips, by
Now I know that the so-called "instance name" which I gave in the Properties Panel (drawer) is, in reality, a variable name which Flash gives my first instance behind the scenes. And instance2 is a name that Flash gives my second instance. What exactly the nature of that name is, I do not know.My point is: both names (drawer and instance2) are the .name property of these movieclips. Otherwise I could not have traced them through asking for the .name property, in the above. Yet only the first of these two can be manipulated:
drawer.x can be set; instance2.x can (as we know) not be set.
But...why? What is the real difference between these two kinds of names? How can they both be the .name property of their underlying movieclip, yet be of such a different nature? What IS the nature of the instance2 name? If it's a String, how come the .name property of one movieclip can be a variable name, while the .name property of another (but identical) movieclip is a String?
I've searched every bit of web page on the net I could find. But it looks as if nobody addresses this issue. We all just work with it - but it makes no bloody sense. A name property = a name property, you'd think. Whether Flash set it or I set it should not make a difference. The x property of a clip, for example, does not change in nature according to who set it - me or Flash.So, again, just to emphasize the problem: how can a property (the name property) of a movieclip change in NATURE depending on who set it? After it's been set, shouldn't the name property of a clip be of exactly the same nature as the name property of another clip?
Does creating a new instance of an Object that uses an identical name to an older instance, delete the previous instance? Or should the original instance be deleted first? The code uses a ridiculous amount of XML vars. Isn't it less memory intensive to parse the XML and save the properties to an Object, and then delete the XML Object, rather than keep the XML Object around and reference it's child nodes directly? Is it better form to break up a huge XML file (>600lines/3200vars) into smaller chunks?
I have a Flash CS4 FLA throwing the following error when I hit Ctrl+Enter to test the movie: WARNING: Multiple 3D objects on the same frame have the same instance name. 3D instance names must be unique. All but one of the instances will be renamed during export. On my layers, I can't see any duplicate instance names, and Flash doesn't give me ANY indication as to which names are causing the problem. I know it's to do with two layers making use of 3D Tween. When I hide them, the problem goes. I've even tried removing and replacing the Symbols. First of all, I have to have the objects on those layers Tween in 3D, and I have to give them instance names as I refer to them from ActionScript code.
I've created a button in Flash, and inside that I have a TextField and a MovieClip, both with instance names set. They cover all 4 frames of the button, with no keyframes.I found I couldn't access the objects using the instance names I'd set, so I used this piece of code to see what's going on:
var obj:DisplayObject = this.m_graphics.btnChange.upState; for ( var i:int = 0; i < obj.numChildren; i++ ) {
using the same event for 8 buttons. i have instance names b1,b2,b3..b8 im loading external swf with replacing instance names p1.swf... that code is in the hovernewStr= StringUtil.replace(evt.target.name, "b", "");when hover i get external swf name myswf="p"+newStr+".swf";there is no problems here. but i have problem with click function. my instance name b1 is changing by flash with instance19.
Ive been using adobe flash cs4 for a while now and have had little trouble giving things instance names. Now though, whenever I double click on something like i normally do to give it an instance name, the blue box no longer comes around it, I click on properties, and change the instance name. I now get a dashed line along the lines of the picture. And when I go to properties, it just says shape, and I cant edit the instance name. Just position and size, then the fill and stroke. What is going on?
I've got a linked class, with an external .as file, tied to a movie clip called "Menu" in an encompassing fla. In this actionscript file, I am trying to pull some information from a few things I made with the flash authoring tool. There are a few symbols on stage in the fla that I drew with instance names "greensboro" and "birmingham", and I want to get their x-position inside some functions of the linked class. I've tried returning a value from "greensboro.x" but of course it says the variable greensboro doesn't exist, because I haven't defined it in the class. Surely there is some way of getting that info in a variable of my linked class!
Edit: here is some code to show what I've tried(cutting everything else). This is in the .as file of the linked class:
I am building a simple tamagotchi - alike application in AS2 and Flash is acting kind of weird on me. Lets say i have a .fla file with all my animations called Kitty.fla, then I have an external .as file called Kitty.as which contains a Kitty class with the itty(attribut i need to give it) function.On the 1st frame on the timeline i have the following:var kitty:Kitty = new Kitty('my attribute');when compiling the movie, flash automatically creates an instance of Kitty but WITHOUT my attribute (its given a default value specified in the code) and then proceeds with the instance according to what i wrote above. So at the end i basically end up with two kitties, one with default attribute and second with the attribute specified by me, while I only need the one with the specified attrribute
I have a folder full of SWF files. Each SWF is its own animation. I have several people submitting their animations for this project. I would like to embed all these SWF's into my project and use .play() .stop() and other movieclip related commands on them as a whole. By this I mean, the artist sends me the SWF, my AS3 script embeds it, then I can access it with say animation_1.stop(); without the artist ever having to enter a instance name, or export for ActionScript name.
I plan to create a shell script which will take all the swf's in a folder and create a AS3 file with all the embed statements. The instance name that will be given to each one by the shell script will be the file name. Is this possible to embed a SWF and access it without giving any movie clips instance names or exporting for Actionscript? UPDATE: @annonymously answer below helped a lot. Here are some other resources that helped me: Great Resource - [URL]
I'm working on a project using google maps. For part of it the user must enter coordinates and click a button in order to add a marker to a map. The code I have written so far allows this to be done once:
play_btn2.addEventListener(MouseEvent.MOUSE_DOWN, submitdata); function submitdata(e:Event){ var marker9:Marker = new Marker(
[code]....
As it is the only one marker can be added as it keeps getting replaced. I want to make it so that the variable name changes each time a marker is to be added.
and I want to add multiple buttons, not just this one. I figured out by trial and error that I couldn't just consecutively list the instances, I also found I couldn't just replicate the code and change the instance names. I just need to know how to go about having multiple buttons/clips.
I was thinking about Flash GC the other day and came up with a question about how reference counting would work in the following 4 class scenario (assume GuiMain is the movie's document class):
I have a grid 8 columns, 3 rows.I used instance names such as 1-1, 1-2, 2-1, 2-2, ect to easily identify each cell. I can call the movieclips within them without a problem by doing this["1-1"].gotoAndPlay(1); but how do I go about calling them when I can't use "this"? "1-1".gotoAndPlay(1); does not work.
In the first frame I have 60 buttons with each having a actionscript in it using the instance name "A1". What I need to know is how can I REPLACE the instance name from A1 to B1 in 60 buttons in my NEXT FREAME?
Is there an easy way to do it rather than typing one by one?? I used the "FIND AND REPLACE" option but it replaces A1 to B1 in both the frames. I need to alter the instance name only in the second frame. How can I do it?
I have two buttons, they're both movie clips, and have identical code except for their names. When I place one of each on the stage and give them instance names, they come up output: