Bobby's code below is a good start, but it's not robust enough according to
what I've found in testing. For instance, in IE, there's actually a split
second where the function is "defined" on the flash swf dom object, but it's
not actually got anything in it yet (like it's an empty function value).
There are several complications which ensue.
As an alternative to rolling your own code for waiting for ExternalInterface
to be ready, there's a library that I wrote and maintain called CheckPlayer
http://checkplayer.flensed.com/ which wraps around SWFObject and adds some
additional "advanced" functionality, including in this case,
ExternalInterface availability checking.
Basically, the strategy is to give the library a specific function name to
try to call on the swf (**caveat), which it will loop trying to do until the
try/catch around it *doesn't* fail (in which case you now know for sure the
function is ready!). Now that the readiness is detected, it calls an a
callback function you define, which notifies the rest of your code that the
SWF is fully ready to go.
It's not the prettiest solution, but it was what I found to be most reliable
in terms of full cross-browser testability.
My suggestion is, rather than trying to figure out these frustrations for
yourself as I did, you might consider using CheckPlayer. Otherwise, you can
look to trying to duplicate the logic I implemented for your own code.
--Kyle
**caveat: The only "downside" really (which is usually not a problem) is
that you have to have some function defined which is ok to be called just
plain, without any parameters, who's successful calling will not create a
problem with the state of your SWF (since it'll be guaranteed to be called
once successfully before the rest of your code continues). So, on my SWF's,
I usually have some sort of simple "Reset" or "Init" function, which doesn't
really even have to do much, but is a valid function I can call on the SWF
without using any parameters, and once it's ready, I know the rest of my
important functions are also ready.
--------------------------------------------------
From: "Bobby" <
bobbyvan...@gmail.com>
Sent: Wednesday, January 21, 2009 6:58 AM
To: "SWFObject" <
swfo...@googlegroups.com>
Subject: Re: problems integration swfobject 2.1 and jquery (document.ready)