从另一台服务器的嵌入式swf调用externalinterface.call在Firefox中不起作用

时间:2009-04-06 09:21:12

标签: flash externalinterface

我在服务器A上有一个index.html。

在index.html中,我从服务器B嵌入了一个swf。

swf包含一个init flash.external.ExternalInterface.call(“alert”,“externalalert”);

当我在服务器B上运行swf时它工作正常,当我通过服务器A上的index.html运行swf时,我得到一个:安全沙箱违规:ExternalInterface调用者......

它在IE中有效。

有谁知道我做错了什么。

谢谢!

2 个答案:

答案 0 :(得分:4)

修复是添加

System.security.allowDomain("*");
在您的AS代码中

ExternalInterface要求在执行HTML-SWF跨脚本编写时设置allowDomain

请注意,您还需要在swf embed标记中设置allowScriptAccess="always"以允许跨脚本编写。

答案 1 :(得分:0)

你没有做错任何事。这是Flash播放器的限制。不允许在不同域之间进行交互。您可以尝试使用crossdomain.xml。 (但我不知道这是否适用于你ExternalInterfaces)。 更多信息可以在这里找到: