2013-03-08 65 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文件。