在head-section的index.php文件中:
swfobject.embedSWF("example.swf", "flash", "1", "1", "10.0.0");
正文中的JavaScript函数:
function ready() {
alert();
}
ActionScript 3中的代码:
if (ExternalInterface.available) {
ExternalInterface.call('ready');
}
在谷歌浏览器中,一切正常。 什么可能导致Opera的问题?
即使Internet Explorer 7也能正常使用此代码。
答案 0 :(得分:1)
当Flash首次尝试调用时,JavaScript ready
方法可能无法使用。 Adobe文档建议在获得结果之前轮询JavaScript(请参阅ExternalInterface.as
示例here)。
您可以使用以下内容快速测试理论:
if (ExternalInterface.available) {
// Poll JavaScript.ready method until we get a result
var interval = setInterval(function() {
if (ExternalInterface.call('ready')) {
trace("JavaScript is ready");
clearInterval(interval);
}
}, 50);
}
此外,JavaScript.alert
是一种相当侵入性的调试方法。请尝试使用console.log
:
function ready() {
console.log("JavaScript.ready method fired");
}
答案 1 :(得分:0)
Opera在使用外部接口调用js端的警报功能时遇到问题。避免叫它。