ExternalInterface是否适用于文件:protocol?

时间:2011-03-09 05:01:18

标签: actionscript-3 flash actionscript file-uri

任何人都可以确认ExternalInterface是否适用于file:协议,或指向一些说它不会的文档?

3 个答案:

答案 0 :(得分:8)

开始看起来这样不起作用。this page说:

  

两个方向之间的脚本   本地HTML文件和本地SWF   文件 - 例如,使用   ExternalInterface类 - 需要它   HTML文件和SWF文件   涉及本地信任   沙箱。这是因为当地人   浏览器的安全模型不同   来自Flash Player的本地安全性   模型。

这就是它对本地信任的沙箱的说法:

  

本地信任的沙箱 - 本地SWF   注册为受信任的文件   (由用户或安装程序)   被放置在本地信任的   沙箱。系统管理员和   用户也有能力   将本地SWF文件重新分配(移动)到或   来自本地信任的沙箱   关于安全考虑(见   管理用户控件和用户   控制)。已分配的SWF文件   到本地信任的沙箱可以   与任何其他SWF文件进行交互   可以从任何地方加载数据(远程或   本地)。

因此,无论是安装人员还是用户都必须将swf放入本地受信任的沙箱中。

答案 1 :(得分:3)

默认情况下,如果您尝试从file://页面使用它,则ExternalInterface将抛出安全错误#2060。但是,如果您在嵌入时添加<param name="allowscriptaccess" value="always"/>选项,则应该可以与JavaScript通信。

docs on ExternalInterface在addCallback()和call()的异常文档中引用它。

编辑:在下面的评论中进一步讨论后,似乎虽然这对我在Mac上有用,但它在Windows上无效。 Erik的回答提供了有关失败原因的详细信息。

答案 2 :(得分:-1)

作为替代方案,您是否考虑过使用Air并利用'FileSystem'?

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html