ActionScript 3.0 :: Accessing Library Items In Loaded SWF From A SubClass?
May 6, 2010
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 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 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'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 swf file which contains in its library couple pictures. After it is loaded using preloader I would like to be able to create couple instances of them and add them to the stage
If I use swc approach and import it in library path I can not preload it but instancing is very simple i.e
Code: public var pic:Pic1 = new Pic1();
and that's it, I can add it then to stage then.
How to access them when doing it with swf and loader class?
I have several SWF's (secondary) published that I want to load into a main (primary) SWF file when the corresponding button is released. I'm currently using loadMovie to load external SWFs into a container_mc on main stage of primary SWF. This works, the secondary SWF loads when it's button is released.But, the secondary SWF has items in it's library that Export for Actionscript, and they should load onto the secondary SWFs stage inside a container_mc (has a different instance name from the one used in main stage). These library items are not showing up. One should load immediately, the others after button releases. None are loading.Should this work? Will items in the library of the secondary SWF that are set to Export for Actionscript be available to load once the secondary SWF is loaded into the primary SWF? Do I have to share the library of the loaded SWF with the main SWF?
- 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 am building a app that pulls data from xml. The different nodes in the xml needs to build different objects. My thinking was that I must import the xml only once. Then build seperate classes for each object type. These classes will extends the xml class and apply whatever it needs to do with specific nodes data. Problem is that it seems like the subclass is created before the xml loaded. I can trace the xml data from the xml superclass but not from the subclass.
Main Class
Actionscript Code: package MyClasses{ import flash.display.Sprite; import MyClasses.Dateline; public class Main extends Spriteprivate var dateLine; public function Main() dateLine==new(Dateline);}}
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.
So, how would you create a class that can access a variable in the class where the subClass was created(superclass), I realise this might be unclear so in example
PHP Code: package {import flash.display.MovieClip;public class Main extends MovieClip {public va demoString:Strin = "TEST";public static var newClass:SubClass;public function
So, how would you create a class that can access a variable in the class where the subClass was created(superclass), I realise this might be unclear so in example
I am hoping someone can explain about subclasses accessing variables from the super class. I found that the subclass can only access variables which are set in the constructor of the super class. Is there any way around this?
I am writing a program in OOP and I have a custom subclass which I make a new instance of in the document class. When I do make a new instance of this custom class, I want this (the custom subclass is a movieclip) object to be positioned at the center of the stage. However, when I try
I'm trying access a static variable located of a super class through an instance of one of it's subclasses and I'm receiving an access of undefined property error (example of which below). Creating another static variable in the subclass and assigning the value from the super class will allow me to dot operate to it.
error When your accessing a method or property from a subclass. Here's what I have done so far but no luck in my script.
1. I tried waiting for my attached movieclip to be added to my stage using the setTimeout method but no luck.
var timedProcess:Number = setTimeout(initRevealDropDown, 1000); private function initRevealDropDown():void { clearTimeout(timedProcess); var myInterface:Interface = new Interface(); myInterface.revealDropDown(); }
2. I also tried extending my subclass to interface where my instance method is defined for revealing my dropdown menu, no luck on that one.
\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 want to subclass "superClass" and override one of it's functions.
[Code].....
The problem is that the "superClass" is loaded from a swf. I do not have a reference to the class definition in my project. Is there a way to do something like below?
Running Flash CS3, I've reviewed the lynda.com tutorial on building particle systems in ActionScript 3.0 to try and build some shooting sparks in an animation.I'm getting stuck at what I think is a really elementary point, but I can't seem to get past it.
Basically, all I'm trying to do at this point is create a class called Particle (which I will teach to do things that particles do a little later) link it to a MovieClip on the stage in my .fla file and use the particle's update function to move it across the stage in a manner defined in the instance (so I can later give different movement properties to each AS generated instance of the MC). I know there are easier ways to accomplish my base task without loading an external package, but this seems so strightforward that I must be doing something very simple wrong I just can't see so I thought I'd post the code here and see what I'm missing.
I start with a file called Particle.as in the same folder as my Spark Test.fla file.
In Particle.as I have the following code:
package{ import flash.display.*; public class Particle extends MovieClip { public xVelocity:Number; public yVelocity:Number; public function Particle() { xVelocity = 0; yVelocity = 0; } public function update():void { this.x += xVelocity; this.y += yVelocity; } }}
So I'm declaring that all particles are built with no motion, but if they are explicitly granted an x or y velocity, they will move by that much when the instance's update function is called in the timeline.
Then in my Spark Test.fla file, I have a small shape in a MovieClip called Spark. In the Linkage properties of Spark I have chosen to Export for ActionScript and Export in FIrst Frame. The class is called Spark and the Base class is Particle. For testing purposes I've dropped an instance on the stage and called it spark. Then in the actions layer in the first frame (the timeline is just the spark layer and the actions layer, one frame long each with no "stop();" so it should run forever) I have included the following code:
spark.xVelocity = 5;spark.yVelocity = -1; function updateSpark(event:Event):void{ spark.update();} addEventListener(Event.ENTER_FRAME, updateSpark);
What it looks like this should do is on each ENTER_FRAME Flash should call updateSpark which is a function that runs the update() event for the spark instance which is a instance of a movieclip that has an update event which moves x and y position by their relative velocity variables. This all seems pretty straightforward to me, but when I ctrl-Enter to test the movie, I get the following 3 compiler errors:
Particle.as Line 1: 5000: The class 'Particle' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type. Particle.as Line 7: 1071: Syntax error: expected a definition keyword (such as function) after attribute public, not xVelocity. Particle.as Line 7: 1084: Syntax error: expecting rightbrace before semicolon.
I am having an issue with compiling a .swf. I get the following error on what seems to be related to the images. There is about 40 that are all very similar the the error code listed below:
5000: The class 'com.decalmywall.Emb_EMB_BORDER' must subclass 'flash.display.BitmapData' since it is linked to a library symbol of that type.
Can I access a static variable of a subClass' subClass? I don't want to instantiate it, just looking to get the variable because it has already been initialized by the subClass.example:
package { public class A extends MovieClip { private var classB:B = new B();
This is probably something very simple, but I'm not too sure of the code used to access items within an array.Suppose I have an array like this (using Kirupa's Arrays example):
And we've loaded up the corresponding variables/text for "bananas", thus the current item = bananas.Therefore the next item would be "oranges". How can I tell Flash that I want to access this next item?? (I'd like to be able to access it through a variable so that the same action can be applied when the item is "oranges" to move to the next item, which would now be "apples").
Say I create a symbol, and then another inside the symbol. In the library I now have 2 symbols. Is there a way to combine these into just one library item?
I have a flash file, which is a header for a website. I inherited it from my company's previous webmaster. I was looking through the library items & see alot of images & graphics that I don't see in the finished product on the webpage. The guy worked really sloppy so it's possible there's alot of unused items. Is there anyway to easily tell which items are not used in the final exported flash file so I can clean it up?
Basically, I have a menu created using XML. Each menu item has a fill that fades in and out as the user scrolls over them. What I want to happen is that when an item is clicked, it stays highlighted. The problem comes when I click on the second item. I can't get the first item to "unselect."Here is the menu code and functions.
Code: var menuHolder:MovieClip = new MovieClip(); menuHolder.x = myMask.x;
I downloaded a flash template for my website. All the library items are not local. Here's the path:..........websites20004sources2007dekabr_#lana_2128flashps d1_ikon.png How can I save my library items so I can edit them in FW? I have CS4.
Flash CS4 is really good for design and development point of view. But I noticed two things:If library have more item then there is no option on right click "Select Unused Items". How can I get this option "Select Unused Items" on right Click while library have a more items with scrollbar?Some times the actions window's height increased. At this time there is no option to decrease the height of actions window except the Reset option.
I'm practice with Flash, and trying out different things, but somehow, I managed to create a movie symbol from a graphic symbol, and now whenever I try deleting one of the symbols, it effects the other symbol as well.
I only want one of these symbols, yet I can't seem to only keep one. They both seem to depend on each other, and I don't know how to get around this.