EDIT: Due to the answer, I am changing the code. I added a line Security.allowDomain("*") , and this line causes an error. So how can this be done?
I want to run an Action Script 3.0 application in a Flex application. To do this, I did the following:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication windowComplete="loadSwfApplication()" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function loadSwfApplication()
{
// The next line throws me an error.
Security.allowDomain("*");
var urlRequest:URLRequest = new URLRequest("path/to/the/application.swf");
swfLoader.addEventListener(Event.COMPLETE, loadComplete);
swfLoader.load(urlRequest);
}
private function loadComplete(completeEvent:Event)
{
var swfApplication:* = completeEvent.target.content;
swfApplication.init(); // this is a Function that I made it in the Root class of swfApplication
}
]]>
</mx:Script>
<mx:SWFLoader id="sfwLoader"/>
</mx:WindowedApplication>
The problem is that when calling swfApplication.init();AIR Player, it throws an exception:
sandbox security violation: caller file: ///path/to/the/application.swf cannot access the scene belonging to the application: /SWFApplicationLoader.swf.
This is because somewhere in application.swfI use the scene as follows:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction);
root.stage.stageFocusRect = false;
How can I download this swf application and USE the scene without any problems?