views:

31

answers:

1

I found it is very useful to load a swf into AS as class (what Embed metadata did). However, I am in trouble to do exact the same thing to content that is not load in compile-time (Loader and URLRequest). How can I do that?

+1  A: 

If you want to load a specific class to instantiate it there are two ways. One is to use the getDefinitonByName() method and the other is to import the class normally from a SWC but excluding the SWC at compilation.

In both cases you need to make sure the SWF containing the class is loaded when you attempt to instantiate it.

Example:

1/ Create a library.fla with your assets

2/ Export library.swf (tick export .swc if you want to use the 2nd solution)

3/ In another document load library.swf

4/ When library .swf is loaded try :

var MyClass:Class = getDefintionByName("Ball");
var ball1:MovieClip = new MyClass();
var ball2:MovieClip = new MyClass();

If you want to use the SWC method just add the library.swc to your classpath and make sure you exclude it from you when you compile (just check your environnement's documentation, or let me know what you're running). Then proceed the same way as previously by preloading the library.swf before instantiating. The nice thing is that you will be able to write : new Ball(); transparently...

Theo.T