我有一个flash电影,我正在使用ExternalInterface.call函数从电影中调用javascript函数。问题是每当javascript函数在Mozilla Firefox中执行时,浏览器就会变得无响应。我在这里上传了这个文件:http://www.aakashb.0fees.net/carbon6.html这是一张印度地图,当你点击最顶层的状态(那是查谟和克什米尔的状态)时,你会调用一个javascript函数。在新窗口中打开它...它可能会使您的浏览器无响应。
答案 0 :(得分:0)
你的方法有两个错误:
您可以直接从ExternalInterface.call调用javascript函数。
因此无需在您的javascript代码中调用eval。
ExternalInterface.call('alert',“来自swf的警告!”);
警告将阻止执行javascript代码
试试这段代码:
alert(1);
console.log(1); // execution of this line is blocked by 'alert'
alert(2);
console.log(2); // execution of this line is blocked by 'alert'
因此,如果您评估'警告',代码的执行将被阻止,您的浏览器可能无响应 这很容易避免。更改您的javascript函数'evaluate'如下
function evaluate(code) {
setTimeout(function () {
eval(code);
}, 0);
}
settimeout只会推迟执行'alert'并尽快从actionscript返回回调。