編輯:由於答案我更改發佈的代碼。我已經添加了Security.allowDomain("*")
行,該行會引發錯誤。那麼,怎麼做呢?如何在Flex應用程序中運行外部SWF?
我想在Flex應用程序中運行一個Action Script 3.0應用程序。要做到這一點,我已經做了以下內容:
<?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播放器的調用拋出了我的異常:
安全性違規:呼叫者文件:///路徑/to/the/application.swf無法訪問由應用程序擁有的Stage:/SWFApplicationLoader.swf。
這是因爲某處application.swf
我用這樣的階段:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction);
root.stage.stageFocusRect = false;
我如何可以加載這個SWF應用程序和使用階段,沒有任何問題?
這也適用於移動平臺嗎?如果是的話,你可以寫一個適用於iOS的Flash播放器。 – sydd 2011-09-03 22:44:57
任何想法,爲什麼這與字節數組,但不swfloader組件的作品? – buddyp450 2013-03-20 07:56:53