gpt4 book ai didi

javascript - 使用 Javascript 检测 Flash 应用程序是否正确加载?

转载 作者:数据小太阳 更新时间:2023-10-29 04:02:15 25 4
gpt4 key购买 nike

我的产品打开网络浏览器并将其指向包含本地 Flash 应用程序的 HTML 文件。我如何以编程方式检测此文件是否加载成功,如果没有,则抛出什么异常?有没有办法使用 Javascript 来做到这一点?

从外部检查文件是否存在于磁盘上是不够的,因为我已经看到其他故障发生(可能涉及竞争条件)。

最佳答案

回答我自己的问题:https://sourceforge.net/forum/message.php?msg_id=5929756

  1. 定义一个在加载 Flash 时应调用的 Javascript 函数。
  2. 从 Flash 文件的顶部调用此方法。
  3. 使用计时器检测回调是否从未被调用。
  4. 更喜欢从 Flash 调用 Javascript 函数,而不是从 Javascript 调用 Flash 函数。无论哪种方式,您都不能调用尚未加载的函数。保证浏览器在从 Flash 调用 Javascript 函数之前完成加载它比保证 Flash 在从 Javascript 调用它之前完成加载您的 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);
}

关于javascript - 使用 Javascript 检测 Flash 应用程序是否正确加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/399314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com