7

任何人都可以确认 ExternalInterface 在file:协议上有效,或者指向一些说它不会的文档吗?

4

3 回答 3

8

它开始看起来不起作用..这个页面说:

在本地 HTML 文件和本地 SWF 文件之间的任一方向编写脚本(例如,使用 ExternalInterface 类)要求所涉及的 HTML 文件和 SWF 文件都位于本地受信任的沙箱中。这是因为浏览器的本地安全模型与 Flash Player 本地安全模型不同。

这就是它对本地可信沙箱的描述:

本地受信任沙箱--注册为受信任(由用户或安装程序)的本地 SWF 文件放置在本地受信任沙箱中。系统管理员和用户还可以根据安全考虑将本地 SWF 文件重新分配(移动)到本地受信任的沙箱或从本地受信任的沙箱中重新分配(移动)(请参阅管理用户控件和用户控件)。分配给本地受信任沙箱的 SWF 文件可以与任何其他 SWF 文件交互,并且可以从任何地方(远程或本地)加载数据。

因此,安装程序或用户都必须将 swf 放入本地受信任的沙箱中。

于 2011-03-09T18:47:43.157 回答
3

默认情况下,如果您尝试从 file:// 页面使用 ExternalInterface,它将引发安全错误 #2060。但是,如果您将<param name="allowscriptaccess" value="always"/>选项添加到您的嵌入,它应该能够与 JavaScript 对话。

ExternalInterface 上的文档在 addCallback() 和 call() 的异常文档中对此进行了引用。

编辑:在下面的评论中进一步讨论后,看来,虽然这适用于我在 Mac 上,但它不适用于 Windows。Erik 的回答详细说明了失败的原因。

于 2011-03-09T05:34:20.193 回答
-1

作为替代方案,您是否考虑过使用 Air 并利用“文件系统”?

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

于 2011-03-11T16:59:52.243 回答