2010-03-27 76 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

相关问题