由于某种原因,ExternalInterface.avaiable显示为true,但它不会调用alert()。任何人都可以解释这个问题吗?
private function checkEI():void {
eiStatus = ExternalInterface.available.toString();
ExternalInterface.call("alert", "hi");
}
我的配置在这里:
var params = {
menu: "false",
scale: "noScale",
allowFullscreen: "true",
allowScriptAccess: "always",
bgcolor: "",
wmode: "direct" // can cause issues with FP settings & webcam
};
看起来它与不在网络服务器和浏览器直接打开的html文件有关。有没有办法让它在没有网络服务器的情况下工作?
答案 0 :(得分:0)
尝试在嵌入参数中指定id
和classid
。它帮助了我所有的浏览器(特别是IE)。
答案 1 :(得分:0)
Here's我之前发布的答案。希望它有所帮助。
摘录:强>
我发现由于某种原因,ExternalInterface.call不起作用 在文件://并且需要http(s)://
所以,任何面对这个问题的人,都要自己动手 webserver(Apache)或用于测试这类事物的GAE
答案 2 :(得分:-1)
你试过吗
ExternalInterface.call("javascript:alert", "hi");
第二个想法,
Flash的安全策略禁止swf通过文件协议调用html中的javascript。你会收到这个错误:
#2060: Security sandbox violation: ExternalInterface caller file: c:/test.swf cannot access file: c:\testhtml.htm