2013-06-28 41 views
1

調用函數我創建了一個AS3腳本函數JavaScript的 - 無法從嵌入式SWF

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方法d如下

document.getElementById("HelloWorld").sayHello(); 

我越來越Uncaught TypeError: Cannot call method 'sayHello' of undefined

任何幫助將不勝感激!

回答

1

如果swf沒有加載,那麼document.getElementById("HelloWorld")將返回undefined,因此你的錯誤。您可以在幾秒鐘後通過調用來嘗試這種情況。

setTimeout(function() { 
    document.getElementById("HelloWorld").sayHello(); 
},5000); 

我也將這段代碼放在body onload事件即ie上調用的函數中。

... 
<head> 
<script> 

function onload() { 
    setTimeout(function() { 
     document.getElementById("HelloWorld").sayHello(); 
    },5000); 
} 

</script> 
... 
</head> 

<body onload="onload()"> 
... 
</body>