views:

48

answers:

3

Hi.

I have an ActionScript project with several classes that i compiled as an swf using Adobe Flex (by creating an actionscript project and clicking on export -> release build)

Is there a way to load that swf so i'll be able to load it's classes and use them on a different swf ?

i know i can use the following code to load an swf file: var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);

loader.load(new URLRequest("game.swf"));
addChild(loader);

(from http://stackoverflow.com/questions/1007803/loading-a-swf-into-an-actionscript-3-project-flex-builder) but how can i actually create an instance of the classes i have in that swf ?

thanks!

A: 

Take a look at this URL from the Adobe LiveDocs site (Look at the section titled 'Embedding SWF files').

Gabriel McAdams
+1  A: 

Have a look at this.

bhups
works like a charm!
ufk
+1  A: 

You can use the function getDefinition for example to get a reference to the class to istanciate.

It will depend how your swf is loaded in what context.

//check if the class exist into applicationDomain
if (applicationDomain.hasDefinition(name)) {
  // get the class reference from applicationDomain
  var clazz:Class=Class(applicationDomain.getDefinition(name));
 // and instanciate
 var myInstance:XXX=(new clazz()) as XXX;
}
Patrick