2013-03-08 60 views
0

我試圖將SWF加載到一個簡單的應用程序中用於測試目的。使用以下命令使用swftools-0.9.1編譯了SWF:FlexPaper - 無法將遠程SWF文件加載到AIR應用程序

/usr/bin/pdf2swf 10993.PDF -o 10993.SWF -f -T 9 

SWF在瀏覽器中正常加載。

使用Flex SDK 4.6一起使用以下Flex代碼:

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         xmlns:flexpaper="com.devaldi.controls.flexpaper.*" 
         creationComplete="onCreationComplete()"> 
    <fx:Script> 
     <![CDATA[ 
      import flash.utils.setTimeout; 

      private function onCreationComplete():void 
      { 
       swf.SwfFile = 'http://my/domain/10993.SWF'; 
      } 
     ]]> 
    </fx:Script> 
    <flexpaper:FlexPaperViewer width="100%" height="100%" id="swf"/> 
</s:WindowedApplication> 

的crossdomain.xml文件是:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="*"/> 
</cross-domain-policy> 

最終的結果是:

SecurityError: Error #3207: Application-sandbox content cannot access this feature. 

任何想法爲什麼發生這種情況?

+0

錯誤來自哪裏?你有完整的堆棧跟蹤嗎?或者是以某種方式在FlexPaperViewer內部捕獲這個錯誤? – JeffryHouser 2013-03-08 21:02:07

+0

錯誤由ADL.exe生成並顯示在Flash Builder中,但僅在調試模式下運行時纔會顯示。 – Reado 2013-03-18 10:11:44

回答

0

由於安全限制,我無法在AIR中加載外部SWF。根據Adobe的說法,除了使用HTML組件通過外部HTML頁面加載外部SWF外,沒有任何解決方法。

0

這可能是由加載的SWF包含調用Security.allowDomain()引起的,當在AIR應用程序中調用時會引發此錯誤。嘗試在沒有-t選項的情況下重新生成SWF文件。

相關問題