views:

12

answers:

0

Hello. I'm trying for several days now to properly import flash symbols into a flex application. i can't only @Embed because the swf file that contains the skins will not be available locally so i need to use URLRequest.

This is what I've got so far.

  1. I created a flash file, lets call it foo.swf that contains several elements in the library and each element has both Export for ActionScript and Export for runtime sharing on. one of the elements is called 'test' which is a movieclip of an image.

  2. i created a flex project that creates the swf flashSkins.swf that contains the following Wrapper class:

    package
    {
        import flash.display.Sprite;
    
    
    
        public class Wrapper extends Sprite
        {
         [Embed(source="foo.swf",symbol="test")]
            [Bindable]public static var test: Class;
    }
    
    }

I tested to make sure that this class properly fetchs symbols from the flash file properly using the following code:

<fx:Script>
    <![CDATA[
        public var wrapper:Wrapper;
    ]]>
</fx:Script>
    <mx:Image source="{Wrapper.test}"/>

it loads the image and shows it properly.

  1. I created another swf file that will fetch the flashSkins swf and import the Wrapper class from it. this is where i fail.

    public function loadSkins():void
        {
            bgLoader = new Loader();
            var bgURL:URLRequest = new URLRequest('http://files.xpogames.com/flashSkins/flashSkins.swf');
            bgLoader.contentLoaderInfo.addEventListener(Event.INIT,onLoaded);
            bgLoader.load(bgURL);
        }
    
    
    
    public function onLoaded(e:Event):void {
        var clazz:Class = bgLoader.contentLoaderInfo.applicationDomain.getDefinition('Wrapper') as Class;
        var a:Object = new clazz();
        theimage.source=a.test;
    }
    
    ]]>

    <mx:Image id="theimage" />
    

I tried using getDefinition with 'wrapper' or 'Wrapper' but on both cases i get an error that the variable is not defined.

any ideas?