1

我创建了一个带有函数的 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

任何帮助将不胜感激!

4

1 回答 1

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>
于 2013-06-28T12:32:39.470 回答