2

我有一个使用 Adob​​e Flash Builder 4.5 用 ActionScript 3 编写的项目。它在 中注册了几个函数ExternalInterface,以便可以从 JavaScript 调用它们。

例如,如果我访问服务器上的 Flash 文档http://localhost/,我可以成功调用定义的函数。如果我只是直接(通过file:///协议)在浏览器中打开文件,它将失败并出现如下错误:

*** Security Sandbox Violation ***
SecurityDomain 'null' tried to access incompatible context 'file:///Users/foo/src/bar/baz/bin-debug/app.swf'

一个合理的安全限制,但它有一个矛盾的后果:我无法调试使用,ExternalInterface因为 Flash Builder 调试器通过file:.

这么重要的功能不能正常调试,这似乎太荒谬了。

如何使用调试器ExternalInterface

4

1 回答 1

3

有两种方法可以解决这个问题:

  • 通过设置use-network=false编译器标志(参见:http ://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html ctrl-f use-network)
  • 将 Flash Builder 调试器配置为在调试时启动 HTTP URL。为此,请单击:运行 -> 调试配置,然后在“要启动的 URL 或路径”下,输入(比如说)“http://localhost/”

我一般更喜欢后者。

于 2012-10-23T16:30:01.690 回答