ActionScript 3.0 :: Accessing Library Items Outside The Document Class?
May 3, 2010
I've been running circles around this preloader I have for days now. There's a number of problems, but the main one I can't seem to figure out is how to retrieve a library asset from an external class that's not the document class.I have a Preloader_mc class in the library. But the Document.as class doesn't need it really. I only need it once I instance the actually Loading.as class. So I'm trying to access it from the Loading.as and I'm not getting anywhere.I also gave up by instancing it in the Document.as and then referencing it by:
Code:
Master.preloader_mc
or
Code:
Master(root).preloader_mc
Static or not, I just wanted access to the thing for once. Which worked until I had to remove it from the Loading.as. Then it wouldn't budge no matter what I typed.
I have a symbol named picHolder. In symbol properties under linkage, I chose "Export for ActionScript" and "Export in frame 1" and gave it a class name of picHolder.Normally, to instantiate a new instance, I'd say:
Code: var tempPic:picHolder = new picHolder(); and I'd go about my way.
How do you access Library items from classes other than the document class?For example, if I create a movie clip in Flash and Export it for Actionscript with the name Foo, I can do this in the document class:
Code: Select allvar f = new Foo(); this.addChild(f);
And it appears on the stage, as it should. But I need to be able to create other instances of this object from other classes. If I use the same code above in SomeOtherClass.as, I get nothing on the stage, obviously because this class doesn't know about the Foo object in the library.
I'm using a preloader to load an external SWF then initiating it through its document class using this code:
Code: private function loaderCompleteListener(event : Event) : void { var loaderInfo : LoaderInfo = event.target as LoaderInfo ;
[Code]....
The problem i'm getting is that the Flash that is being loaded has a lot of classes exporting on the first frame, which now cannot be accessed, and therefore I get "The definition of base class cannot be found" errors.
How do I ger the items in the library that export to AS accessible by the parent loading SWF.
I've been working with/around and dodging a situation where I'm trying to access FLA library movieclip assets, but NOT from the document class. I capitalize this because this is my 4th forum posting. I know the answer to that one:
instanceName:ClassName = new ClassName();
The easiest solution for accessing library items from a SubClass looks to be this:
// at topimport TestLocalMC;// in constructorvar box:TestLocalMC = new TestLocalMC();addChild(box);
However, it doesn't show up. I tried a fake non-existent class. It gave me an error so I know it's referencing a Class in the library that I supplied. If I trace the object, it shows up. If I trace the X value, it says 0. So logically, it should be right in front of me..but it's not there! .Am I on the right track? Is this familiar at all to anybody? Is there something I'm missing?
if I could reference FLA library items with a bit of freedom from the document class. Having to go up the hierarchical class tree everytime to retrieve a movieclip is getting rather painful.
I'm slowly working my way through AS3, and have a question about how to do this. In as2, you could just load a swf file, then use attachMovie("itemLibraryLinkageName");. I know in AS3 you have to use addChild() to add items to the display list, but how would you go about adding the library items to the stage from an externally loaded swf in AS3? I've tried:
Code: Select allvar library:MovieClip; var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);[code].......
how to access library items in the main SWF directly from a SubClass by doing this:
package{ import SubClass; public class Main extends MovieClip{public var mySubClass:SubClass = new SubClass;this.addChild(mySubClass); }//class }//package
package{ import Box; public class SubClass extends MovieClip { public function SubClass():void{var train:Box = new Box;this.addChild(box);}//SubClass constructor function }//class }//package
But how do I access library items of a loaded SWF in the same fashion? Importing is different from loading and I'm not sure how or where to piece instances together at runtime.
I'm being really dumb today and I know this should be simple.....How do i access the stage from a class which isn't the Document Class? For instance, I want to create a tween which takes in the parameters of the stage's width? So I've written.....
ActionScript Code: var myTweenX:Tween = new Tween(this, "x", Regular.easeOut, this.x, stage.stageWidth, 60, true);
How do i access the stage from a class which isn't the Document Class? For instance, I want to create a tween which takes in the parameters of the stage's width?[code]
I have created a movieclip in the library and added a class to it. I want to access a function and set an Array in that class from the document class...Heres what im doing now which is not working... it says startnow function is undefined.
PHP Code: package comimport flash.display.*; import flash.events.*; import com.NavMC public class Capability extends MovieClip Constants: //
I am working on a new site, and in the site items from the library are brought on to and taken off the main stage through a handful of functions in the document class. I also have a main menu class that is responsible for building and adding menu items. The way it is built currently, these menu items must somehow reach into the document class and call the functions I created earlier, but I am unsure how to do this. Most things I find on how to call a parents method end with the person saying if it built correctly you shouldn't be doing this at all.
I'm still in the 'need to learn a lot more' phase of AS3 and am wondering the best way to do this. I have some graphics (MovieClips) in my library that I'd like to have use the same class. But Flash wants unique class names.What's the proper way to handle this? External swf graphics?
I have a really peculiar problem that relates to the old question of how to best access the instance of the document class from a different class. I usually add a 'this' as parameter when I create an instance of another class inside the document class. Then I save this 'this' in a class property of the type 'Object'. It usually works just fine but lately I have encountered a really bizzarr error.
When my movie first starts I have to load 2 xml-Files. I do that in another class - that calls upon the document class instance when it is finished. I use 4 methods for that, each calling the other, when it is finished. (like one doing loader.load(urlRequest), then loader.addEventListener (Event.Complete, nexthandler) and so on
Now, when I call back to my document class from the last of these 4 methods it works just fine. But when I try skipping the first two methods (since I now need only one xml-File) - my try/catch-statement suddenly complains: TypeError: Error #1010! Like it needed more time to establish the instance of the document class or something similar strange.
when I try to access a property of the document class from another class, I get an error:
Quote:
1119: Access of possibly undefined property _left through a reference with static type flash.displayisplayObject.
Maybe I'm not doing it correctly? This is how I've been accessing document class properties so far. Does the fact that they're private make a difference?
I have a main document class with another class instanciated (mouse follower.as) within it. I want the mouse follower class to access a stage instance. How is this done?
I'm currently working on an interactive app, (site) which requires me to modify a few textfields, and change images dependant on the user choice (using mouseevent). This is a separate module, thus I'm posting the question in here instead:there are three images, that are lined up, with a textbox next to them. When a image is chosen, and enlarges, the text changes with the chosen image, according to XML.The textFields, 'text_title', 'text_description' are contained in a movieclip, called 'textbox'.This has been built in the Flash IDE (CS3) named info.fla/swf, which refers to a Document class 'com.info', made in Flex Builder 3...I attempted to modify the textfields using this:textbox.txt_title.text = "Loading";textbox.txt_desc.text = "test";But, I was unable to at first to change the text using the document class, as it gives "1120: Access of undefined property <variable>".
I have an instructions.as file which is trying to call a function in the document class through a mouse click event listener and am getting a 1009 error.
Here are my to actionscript files:
** this the the instructions.as** package Elements{ import flash.display.MovieClip; import flash.events.*;
- a fla file with movieClips on the timeline , this fla is linked to the Main class
- a Main class who does some randomization of the animations
- a MenuItem class which function is to give each button menu the same functionnality
the problem is that I'm trying to access to the randomNumber function inside the Main class from the MenuItem class to prevent the rewriting of the function inside this class. I've made some research on Google and apparently I have to create a Singleton class so I can access the Main class from everywhere, I've followed those instructions but it still doesn't work, when I trace the Main class from the MenuItem class it gives me a Null result!Main Class code :
I've made it this way1. I made clip and it's main class (eg. timeline.as) - at this point it works2. I put code from main class to another class (eg. timeline_template.as) and in main class (timeline.as) I inherit it by :public dynamic class timeline extends timeline_template {3. I added stage items declarations in timeline_template.as because without that any code couldn't reach target an I got 1120: Access of undefined property xxx after these steps whole clip works but items on stage ( buttons, etc. ) are not affected by code. That's logical because code references to properties declared in timeline_template but not in timeline.fla. But how to get around that - I need several usage of timeline_template and I would like to avoid code redundancy
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....
I have loaded one swf externally in my main class. and there is one button in loaded swf suppose its name submit_btn. i have to do that when i click on submit_btn, this loaded swf should be removed. what is the code for that
have a very simple question, (Bear with me I'm still quite new to as3 and some of my terminology may not be solid) I want to access a function that is within my document class when a movie clip on the timeline has played to a specific point (being the end). I have already been able to call another function from the document class at the top/root level (it is called to initialize all clips and buttons when you click on the "enter" button on the splash screen. Problem is that I cannot call another function (in the document class) from a movie clip within a movie clip on the timeline. Is there an easy way to do this? I have considered writing a separate class for the movie clip and then adding it onto the movie clip (using the property panel). I don't really want to do it this way because I am already using a base class on that movie clip and 3 others that use a set of generic functions.
On the stage I have a movieclip by the name of rect_mc. Inside it have have a MovieClip square_mc.In the time line that I get when I double click on rect_mc (timeline of rect_mc) I have written the following code
var width1:Number; width1 = sqaure_mc.width;
How can I access width1 from the document class?The thing that I want to is access the variable declared (width1) in the timeline of rect_mc. Just for the sake of a example only I choose the width of MovieClip.My doubt is how can access a variable declared inside the timeline of rect_mc from the document class. It could be any variable.My document class is:
I want to find out whether my swf was loaded locally or from another swf. For this purpose I have declared a variable 'parentType' in my fla. var parentType:String = String(parent); There is a function in the document class that determines whether swf was loaded locally or from another swf. The name of the function in the document class is 'externalOrInternal'. The varaible parentType is passed as a parameter to the function externalOrInternal externalOrInternal(parentType); The name of the document class is Main. In the constructor of Main I have the function pollResize() (the use of this function is to listen for the resizing event. That part of the code is not shown in the snippet given below).
[Code]...
I see that swfParentType is has value insde the function externalOrInternal. My doubt is why null is traced inside the function pollResize. Why is it not [object Stage] as inside externalOrInternal. Due to this I am not able proceed further with the stage resizing event.What needs to be done so that proper value is traced in the function pollResize.
I have programmed a game using the Flash authoring tool and a document class. I'm trying to graphically add instances and add functionality in the document class. Suppose I have a main timeline with 3 frames, each frame reperesents a different level of the game. In frame 1 I have an instance of the MovieClip class named tree1 on the stage and in frame 3 I have an instance of the MovieClip class named tree3 on the stage. In my document class, after an initial stop() command, I want some logic like: tree3.scaleX = tree1.scaleX; But tree3 is unknown to the runtime since we are not of frame 3 yet. Any way to access all the instances on all frames declared in the authoring tool from the document class?
I have built a button in the fla timeline and need to have it fire a method in a document called gigyaSocial. the Timeline code works fine but I cant get it to recognise the method that I commented out at the bottom if this code snipit.
I'm trying to access a MovieClip object in a SuperClass from a SubClass. The only way I can tell this is possible is through an event dispatch, but I'm dealing with a preloader and a loaded external SWF. So I can't make an instance of the "not yet loaded" classes because I'll get errors. Furthermore, the objects in both SWF need to be controlled in sync.