这是@Amitd 所指的帖子......可能有帮助吗?
“定义一个 Javascript 函数,如果 Flash 加载,则应调用该函数。从 Flash 文件的顶部调用此方法。使用计时器来检测是否从未调用过回调。更喜欢从 Flash 调用 Javascript 函数而不是从 Javascript 调用 Flash 函数。无论哪种方式,您都无法调用尚未加载的函数。在从 Flash 调用它之前保证浏览器已经完成加载您的 Javascript 函数,比在从 Javascript 调用它之前保证 Flash 完成加载您的 Flash 函数要容易得多。这是一个例子:
我正在使用 swfobject 嵌入 Flash。我使用 FlashVars 来告诉 Flash 要调用哪个 Javascript 函数。如果页面上有多个 Flash 对象,这很有用。
闪光
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
if (ExternalInterface.available)
{
var onLoaded:String = params["onLoaded"];
if (onLoaded != null)
ExternalInterface.call(onLoaded, true);
}
Javascript
var flashLoaded = false;
var flashTimer;
function onFlashLoaded()
{
flashLoaded = true;
clearTimeout(flashTimer);
}
function onFlashTimeout()
{
if (!isFlashLoaded)
{
// Remove the Flash object in case it is partially loaded
$("#videoFeed").empty();
$("#videoFeed").append('<div id="flashObject"></div>');
alert("Failed to load video player");
}
clearTimeout(flashTimer);
}
function connectToVideo()
{
var flashvars = {};
flashvars.onLoaded = "onFlashLoaded";
var params = {};
params.menu = false;
var attributes = {};
isFlashLoaded = false;
flashTimer = setTimeout("onFlashTimeout()", 5000);
swfobject.embedSWF("flash/VideoFeed.swf", "flashObject", "800", "600", "11", "expressInstall.swf", flashvars, params, attributes);
}