ActionScript 3.0 :: Flash Accessing Stage Instances From .as File Linked To A Movieclip
Aug 28, 2010
i've been all afternoon trying to figure out a solution to my problem, and I can't seem to find it, or cannot implement it. Let me lay it out for you: I have an actionscript file linked to a movieclip. (movieclip:skate class linked: generic_skate).I have it set up that way so I can create an array of skates easily (i'm using a for loop to create them), and each skate has its own attributes (name, description, price and the image that is supposed to go on the deck)In the stage, i have three text boxes, one for the price, other for the name, and another one for the description.In the generic_skate class, I'm handling all the mouse events (in this case mouseOver and mouseOut.
What i want to accomplish is: when the user hovers over a skate, the info shows up in the text fields and when he hovers out, the info goes away. My problem: Since I'm doing all the mouse interaction in the class file, my guess is that I have to access the stage to get to the text boxes that are placed there to change its info or somehow create a "middle" man to do all the handling.
I'm trying to link a clip to a class, and it goes well until I try to access MovieClips or TextFields placed on the stage within that clip from code in the class. My code is below; there is a TextField called output_txt on the stage within this clip.
class Main extends MovieClip{ public function Main() { //trace("123"); <--if I replace the line below with this, it traces nicely output_txt.text = "123"; stop(); } }
I've been having a problem that I have not found a good solution for. I think this is a problem related to the Flash Player's architecture so an experienced eye here would be welcome.
Imagine you've got 3 symbols in the Library and create instances of them by dragging them onto the stage. Each object is linked to a class. Let's say the object classes are named ObjectA, ObjectB, ObjectC. Their stage instance names are objectA, objectB and objectC.
The classes of these objects reference stage instances. For example, ObjectA might have a reference to ObjectC, like this:
var _objectC = MovieClip(root).objectC;
ObjectC might have a reference to ObjectA, like this:
var _objectA = MovieClip(root).objectA;
It sounds like this should work but it doesn't. When the SWF is published, objects on the stage are instantiated in the order that they were dragged from the Library. This means if objectA is instantiated before objectC, it's reference to objectC will return null and the code will fail.
I know there are ways around this, but I'm trying to come up with a solution that doesn't involve the document class, a helper class like a singleton, or instatiating objects with addChild().
It seems that the only way you can be absolutely certain that all the objects have been instantiated is on the first frame of the movie. So I've been using a system that adds an enterFrame event listener to just get references of stage objects when the first frame runs, like this:
function findStageInstances(event:Event):void { var _objectA = MovieClip(root).objectA; var _objectB = MovieClip(root).objectB;
[code]....
(Note: The ADDED_TO_STAGE event won't help in this case because objects are added to the stage by the SWF based on the order they were dragged onto the stage from the Library.)
my movie is linked to an external class called game, and in the game cosntructor I am trying to access instances on my stage. I have tried MovieClip(root).instancename, root.instancename and even tried adding an event listener to listen when the movie is done loading because I thought maybe it was because the instances on the stage weren't created before the constructor is ran. This is the main class, shouldn't it be easy?
I have a number of instances of a MovieClip on stage. These are dragged onto the stage and arranged manually. Now, I would like to alter the instances during run time, using as2 code.
how can I name all the instances of the same MovieClip dragged onto the stage, using as2 code? (specify if the solution involves exporting the library MovieClip with an identifier name)
I have created a game in flash, and due to the nature of the game, I have many movieclips placed on the stage manually in Flash CS4. They are not programmatically added as children to the stage, and so I am having difficulty getting access to them in the document class. So far the only method I have been able to use is to do stage.addChild(active_area); (for example), but there are many movie clips, all very differently named, so this method seems incorrect.I've discovered that my MovieClips are not children of the stage, but in fact MainTimeline, as when I for loop through stage.getChildAt(i);, only one child, root1, is traced out. How can I access movieclips that were placed on the stage in the timeline from the document class, without having to manually add them as children to the stage? So it looks like my problem wasn't that I couldn't access the MovieClips, it was that I wasn't modifying the MovieClips' values, so I wasn't registering any change in them.
Here is the code after I fixed it: function manage_cursor(e:Event):void { prevX=currX;
- A.fla includes buttons, movie clips and also B.swf is loaded in A.fla using a LOADER
- i want to access elements in A.fla, from the actionscript codes inside B.fla to modify those movie clips and buttons based on actions going on in B.swf
for instance, lets say there is a button X in A.fla, and there is a button Y in B.fla, B.swf is loaded into A.fla, and I want the button Y to erase button X when clicked.
general question: accessing elements in a stage, through a SWF file loaded into that stage.
I have a movieclip that gave a class name and set everything to export into action script. Now, I would like to put multiple instances of that same movieclip on the stage. I would also like to be able to keep track of them individually. Would I need to do something like create a for loop and have it run however many times i want that movieclip onstage? If I did that, how would I be able to manage them? Would I also give them names in the for loop and have a var that goes ++ every time it loops, then attach that var to the end of the name I give it.
I have a number of instances of a MovieClip on stage. These are dragged onto the stage and arranged manually. Now, I would like to alter the instances during run time, using as2 code. My question is, how can I name all the instances of the same MovieClip dragged onto the stage, using as2 code?
I have a button, inside an mc1 which when clicked it plays [TweenLite.to(mc2, 2, {frame:1});] inside mc2 -which located back on the stage. Currently I get the error of "access of undefined property)".
So I have a menu built inside of Flash CS4 that has a graphic for a background and five text fields that sit on it for menu options. The whole thing is saved as a movie clip in the library. The text fields all have instance names like infoBtn and mapBtn etc. and the menu is already on the stage and linked to it's own class in the library. My problem is accessing those text fields on the menu from the class. I keep getting "Error #1009: Cannot access a property or method of a null object reference." and the menu doesn't work. But if I trace the infoBtn.text in the class it outputs the text that is in the text field. So the code is accessing it but it's still not working?
I have created a movieclip (game_container_mc) in the main.as file and I want to add a child (enemy) to it from a different file (makeWave.as) how would I do this?
I'm creating a game in ActionScript 3.0 using the FlashPunk game engine and the FlashDevelop SDK. I've created my own MovieClip class that takes a preloaded movie clip file.
public function MyMovieClip(file:MovieClip, posX:int, posY:int, frameRate:int) { movieClip = file;
[Code]....
The problem that I'm having is that when I have multiple instances of the MyMovieClip class using the same swf file, only the last instance is rendered and is updated for each instance of the class that I have.(e.g 3 instances of MyMovieClip, the last instance is updates at 3 times the speed.)
In my flash document, I have a movieclip drawn on the flash stage (put there myself, not dynamically). I want to use this as a holder for an external .swf. I am using a sub-class to run the loading script. I pass the stage reference to it as the variable "theStage". It has no trouble loading things directly to the stage, but it can't find my movieclip for some reason. I have exported the movieclip for actionscript in the symbol properties panel and have given it an instance name.I've tried theStage.myMovieClip.addChild(mySwf); and suchlike, but always get this error message in output:ReferenceError: Error #1069: Property myMovieClip not found on flash.display.Stage and there is no default value.at MethodInfo-206()Some more information: It works from the main class without any trouble.
1.I have a MovieClip in the Library. There is a named and dynamic text box in the MovieClip. In Frame 1 of the .fla, I construct the MovieClip from the class StatusBoard and add it to the stage. There is one setStatus method in the class to set the text. This works fine.[code]
2.I have a bunch of buttons that I created from a class called LinkButton.as (they are MovieClips, not _btn buttons). FWIW, they are attached to other MovieClips, but they work fine. The trace output is fine. What I am trying to do is have the rollover change the text in the billboard.[code]
3. In lay terms, I used addChild to add a MovieClip with a dynamic TextField to the stagw and I want MovieClip buttons created from an .as class to be able to change the text on a rollover.What I can't seem to do is actually reference the billboard that I added using addChild from the .fla.The buttons work and trace the desired text, I can't seem to send that text to the billboard.
I'm trying to drag a movieclip on stage, and with nine existing button instances, cause that movie clip to jump around and run at different labels (which are within the movie clip itself. I'm not sure what I'm doing wrong, but I get the error #2109 which says (similar error for each button):
How can find out the linked url of the image in the flash of a website? I looked for the image url some time. but couldn't find itif find the linked url of the image, and i want to alter an image linked url address. where is the code in?
I have Flash CS3. I have created a flash file. If I click on the SWF file I have no problems opening it It plays. It looks nice I'm the man.However, now when I try to publish it, the HTML file will not work. It says "windows cannot find this file,you have typed the location correctly".I am double clicking directly on the file and not typing anything, in fact I was considering checking on Ebay to see if I could upgrade my PC to have eyes.The feature has worked previously, which leads me to the conclusion that something else has changed. I have tried using the publish setting, I have also tried using Dreamweaver to embed the file, and have also tried manually inserting the necessary code after seeing some on a website.
I am working with a Flash template that includes a window linking to an XML document. We are trying to have three scrollable columns instead of what we have now which is the one block of text provided through the XML document.
I'm trying to make a simple "tamagotchi-alike" application and i have encountered problems when trying to access a movieclip. To describe the situation, at the beginning there is nothing on the stage, then from a class called Kitty I attach a movieclip called mainStage with all the animations.
\psfHomeDropboxDevelopmentRepositoriesGITi-ccPowerhouseNotesmasterflashliblibnoteNotesCore.as:1: 5000: The class 'lib.libnote.NotesCore' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.
Firstly, what I have tried and what I am using:
[Code]...
I am mainly from a Java background, so perhaps I am misunderstanding an ActionScript concept; if anybody could point me in the right direction I would be extremely grateful!
I have a tricky problem. I've been working on a flash quiz that uses a xml file to generate questions in a random order. Got that working fine. The Fla parses open the file and loads the nodes into dynamic text boxes.
Instead of posting my entire files and such, I'll make a brief example of my situation and my desired outcome.My files consist of my document class entitled Engine.as and another class Abilities.as all within the same folder.On my stage I have a MovieClip with the instance name of item1_mc. On its personal timeline I have 2 frames, one entitled "inactive" and the other "active". Here's a sample of very similar code....
Code: package { import flash.display.MovieClip;
[code]....
How do I access item1_mc? In reality I have 6 different clips and I desire to access much more than frame changes...what's the overall best way to be able to interact with an item placed on the stage via an external .as file that is not the document class?