繁体   English   中英

flex ExternalInterface不会执行call()函数

[英]flex ExternalInterface won't execute call() function

由于某些原因,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文件仅由浏览器直接打开有关。 有没有办法让它在没有网络服务器的情况下工作?

这是我前一段时间发布的答案。 希望能帮助到你。

提取:

我发现出于某种原因,ExternalInterface.call在file://上不起作用,并且需要http(s)://

因此,面对此问题的任何人,请让您自己使用Web服务器(Apache)或GAE来测试这些事情

尝试在嵌入参数中同时指定idclassid 它在所有浏览器(特别是IE)中对我都有帮助。

你有没有尝试过

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

我相信, ExternalInterface是否在文件:协议上工作时也存在类似的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM