我使用Adobe 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
一起使用?
答案 0 :(得分:3)
有两种方法可以解决这个问题:
use-network=false
编译器标志(请参阅:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html ctrl-f use-network)我通常更喜欢后者。