我使用函数
创建了一个AS3脚本public function sayHello():String
{
return "Hello";
}
我还注册了如下回调
ExternalInterface.addCallback("sayHello", sayHello);
在我的javascript中,我嵌入了SWF文件,如下所示
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("HelloWorld.swf", "HelloWorld", "1", "1", "9.0.0");
</script>
但是当我尝试按如下方式调用sayHello
方法时
document.getElementById("HelloWorld").sayHello();
我正在Uncaught TypeError: Cannot call method 'sayHello' of undefined
任何帮助将不胜感激!
答案 0 :(得分:1)
如果尚未加载swf,那么document.getElementById("HelloWorld")
将返回undefined,从而导致错误。如果是这种情况,你可以尝试几秒钟后调用它。
setTimeout(function() {
document.getElementById("HelloWorld").sayHello();
},5000);
我还会将该代码放在body onload事件上调用的函数中,即。
...
<head>
<script>
function onload() {
setTimeout(function() {
document.getElementById("HelloWorld").sayHello();
},5000);
}
</script>
...
</head>
<body onload="onload()">
...
</body>