FlexPaper - 无法将远程SWF文件加载到AIR应用程序中

时间:2013-03-08 20:22:52

标签: flex pdf flash flex4.6 flexpaper

我正在尝试将SWF加载到一个简单的应用程序中以进行测试。使用swftools-0.9.1使用以下命令编译SWF:

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

SWF在浏览器中正常加载。

将以下Flex代码与Flex SDK 4.6一起使用:

<?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.

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

这可能是由于加载的SWF包含对Security.allowDomain()的调用引起的,该调用在AIR应用程序中调用时会引发此错误。尝试重新生成不带-t选项的SWF文件。

答案 1 :(得分:0)

由于安全限制,我无法在AIR中加载外部SWF。根据Adobe,除了使用HTML组件通过外部HTML页面加载外部SWF之外,没有其他解决方法。