Javascript – How to access a flash object embedded via swfobject’s embedSWF

apache-flexflashjavascriptswfobject

I have to call an ActionScript method via Javascript, but I have a problem accessing the flash object itself. I embed the flash file via the help of swfobject.

Previously, when I use the static publishing approach, I could easily get the flash object by calling these methods:

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

For some technical reasons, now I have to use the dynamic publishing approach (using swfobject.embedSWF). But, as mentioned in the documentation, the method getObjectById can only be used if you use static publishing approach.

Now, how can I access the flash object?

Cheers,
Andree

Best Answer

With the good old document.getElementById("flash_object")

Just be sure to do it after page load. You can set it up via the callback function, too:

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);