РЕДАКТИРОВАТЬ: Из-за ответа я изменяю опубликованный код. Я добавил строку Security.allowDomain("*")
, и эта строка вызывает у меня ошибку. Итак, как это можно сделать?
Я хочу запустить приложение Action Script 3.0 в приложении Flex. Для этого я сделал следующее:
<?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>
Проблема в том, что при вызове swfApplication.init();
AIR Player выдает мне исключение:
Нарушение изолированной программной среды безопасности: файл вызывающего абонента: ///path/to/the/application.swf не может получить доступ к рабочей области, принадлежащей приложению: /SWFApplicationLoader.swf.
Это потому, что где-то в application.swf
я использую сцену так:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction);
root.stage.stageFocusRect = false;
Как я могу загрузить это приложение SWF и использовать сцену без проблем?