我有一个Flex应用程序,可以进行大量的网络流量,它使用ExternalInterface进行一些javascript调用(对于SCORM),它加载XML文件,图像,视频,音频,它有一系列可以加载的模块有点......
所以问题是 - 我们现在要求用户需要在未连接到互联网的机器上本地运行此内容(这意味着他们无法连接到Adobe的站点以更改其安全设置.)尽可能想象一下,当用户将html页面上的点击加倍以启动此事时,他们会收到一个安全警告,即swf正在尝试与其他域进行通信而不是它所在的域.我们无法将其包装在exe或一个AIR应用程序,所以我除非有某种方法来调整一些模糊的安全设置,我们可能会被冲洗.有任何想法吗?
你要做的就是AIR解决的问题.你应该试一试,这并不难.如果你真的真的不能使用AIR(你没有指定原因,所以我认为这只是因为你不想学习新系统),那么修改安全配置文件就能解决问题.
基本上您需要做的是在"Global FlashPlayerTrust"目录中创建一个"信任"文件.这可以由您的安装程序(将所有javascript,SWF,html等文件安装到本地计算机上)完成.如果目录不存在,则应创建该目录.每个操作系统的目录是:
Windows - %WINDIR%\ System32\Macromed\Flash\FlashPlayerTrust
Mac - /Library/Application Support/Macromedia/FlashPlayerTrust
Linux - /etc/adobe/FlashPlayerTrust
接下来,您需要创建信任文件.您可以将其命名为任何名称,因此请选择一个不太可能与其他名称冲突的唯一名称.像CompanyName.cfg之类的东西.它是一个文本文件,每行一个路径.您可以一次信任一个SWF,也可以信任整个目录.例:
C:\Program Files\MyCompany\CoolApp C:\Program Files\MyCompany\OtherApp\Main.swf
要测试它是否正常工作,您可以在Flash影片中检查System.security.sandboxType
(ActionScript 1或2)或Security.sandboxType
(ActionScript 3).它应该具有" localTrusted
" 的值