Thanks everyone, I ended up using this code successfully:

private function laodMySWF():void {
        // load the file with URLLoader into a bytearray
        var loader:URLLoader=new URLLoader();
        
        // binary format since it a SWF
        loader.dataFormat=URLLoaderDataFormat.BINARY;
        loader.addEventListener(Event.COMPLETE, onSWFLoaded);
        
        //load the file
        loader.load(new URLRequest("/swfs/welcome_16_9.swf"));
}
private function onSWFLoaded(e:Event):void {
        // remove the event
        var loader:URLLoader=URLLoader(e.target);
        loader.removeEventListener(Event.COMPLETE, onSWFLoaded);
        
        // add an Application context and allow bytecode execution 
        var context:LoaderContext=new LoaderContext();
        context.allowLoadBytesCodeExecution=true;
        
        // set the new context on SWFLoader
        loader1.loaderContext = context;
        
        loader1.addEventListener(Event.COMPLETE, loadComplete);
        
        // load the data from the bytearray
        loader1.load(loader.data);
}

// your load complete function
private function loadComplete(completeEvent:Event):void {
        trace("loadComplete: completeEvent.target.content " + 
completeEvent.target.content);
        mySwfMc = loader1.content as MovieClip;
        loader1.content.addEventListener("MessageFromFlash", doSomething);
}

On Dec 1, 2014, at 8:13 PM, Alex Harui wrote:

> Sounds like AIR Security Model stuff.  See “Adobe Air sandbox” in this
> article [1].  A commonly used workaround is to use byte array as described
> in the first answer here [2].
> 
> HTH,
> -Alex
> 
> [1] 
> http://www.adobe.com/devnet/flashplatform/whitepapers/runtime-security.html
> [1] http://s.apache.org/AdobeAIRRuntimeSecurity
> [2] 
> http://stackoverflow.com/questions/2713865/how-to-run-an-external-swf-insid
> e-a-flex-application
> [2] http://s.apache.org/ByteArraySWFLoader
> 
> On 12/1/14, 3:43 PM, "Jerry Hamby" <[email protected]> wrote:
> 
>> I have in my Flex app (Apache SDK  4.12.1):
>> <mx:SWFLoader id="loader1" creationComplete="swfLoaded(event)"
>> complete="contentLoaded(event)"/>
>> 
>> I use the code below to find the SWF file: (this seems to work for both
>> the desktop and on my Android device)
>> var theFile_ApplicationStorageDirectory:File =
>> File.applicationStorageDirectory.resolvePath("/swfs/welcome_16_9.swf");
>> var thePath:* = theFile_ApplicationStorageDirectory.nativePath;
>> loader1.load(thePath);
>> 
>> this works fine now after hours of research but the problem is that I
>> can't get access to "loader1.content", it is always null.
>> I need it so I can do an addEventListener:
>> loader1.content.addEventListener("MessageFromFlash", doSomething);
>> 
>> I get the "swfLoaded" event but not the "contentLoaded" event.
>> 
>> Any clues on why the loader1.content is NULL?
>> 
>> Jerry
> 

Reply via email to