2010-03-27 77 views
2

我必須通過Javascript調用ActionScript方法,但訪問flash對象本身時遇到問題。我通過swfobject的幫助嵌入了Flash文件。如何訪問通過swfobject的embedSWF嵌入的Flash對象?

以前,當我使用靜態發佈的辦法,我可以很容易地通過調用這些方法獲取Flash對象:

swfobject.registerObject("flash_object", "9", "expressInstall.swf"); 
var flash_object = swfobject.getObjectById("flash_object"); 

對於一些技術原因,現在我必須使用動態發佈方式(使用swfobject.embedSWF)。但是,如文檔中所述,只有在使用靜態發佈方法時才能使用方法getObjectById

現在,我該如何訪問flash對象?

乾杯, ANDREE

回答

5

用好老document.getElementById("flash_object")

只要確保頁面加載後做了。您可以通過callback function設置它,太:

var mySWF = null; 
var flashvars = {}; 
var params = {}; 
var attributes = {}; 
var embedHandler = function (e){ 
    mySWF = e.ref; //e.ref is a pointer to the <object> 
    //do something with mySWF 
}; 

swfobject.embedSWF("/path/to/file.swf", "flash_object", "550", "400", "9", "/path/to/expressInstall.swf", flashvars, params, attributes, embedHandler); 
+0

啊我明白了。謝謝! – Andree 2010-03-28 07:33:15

+0

這不幸在Firefox中不起作用...它返回null! :(有誰知道爲什麼,或如何得到它?謝謝! – jowie 2011-11-29 17:18:45

+0

我剛剛更新我的答案使用swfobject的回調API:e.ref將返回指向的指針,無需document.getElementById – pipwerks 2011-11-29 21:38:04

相關問題