我正在尝试将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.
知道为什么会这样吗?
答案 0 :(得分:0)
这可能是由于加载的SWF包含对Security.allowDomain()
的调用引起的,该调用在AIR应用程序中调用时会引发此错误。尝试重新生成不带-t
选项的SWF文件。
答案 1 :(得分:0)
由于安全限制,我无法在AIR中加载外部SWF。根据Adobe,除了使用HTML组件通过外部HTML页面加载外部SWF之外,没有其他解决方法。