gpt4 book ai didi

用于动态加载 SWF 的 Javascript

转载 作者:行者123 更新时间:2023-11-28 21:21:22 25 4
gpt4 key购买 nike

我需要 Javascript 或 Ajax 来加载文件夹中的 SWF 文件。

/swfdir
|_ test_1.swf
|_ test_2.swf
|_ test_3.swf
.
.
.
|_ test_50.swf

一个文件夹有许多 swf 文件。我想通过替换现有的来一一加载所有这些。每个 Flash 应播放 10 秒,然后必须替换为下一个 swf 文件。

请给我提供一个工作片段。

更新:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFObject 2 static publishing example page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
function loadSWFObjects() {
var i=1;
for(i=1;i<=50;i++) {
document.getElementById("mySWF").innerHTML =
"<object type=\"application/x-shockwave-flash\" data=\"SWFObjects/test_"i".swf\" width=\"300\" height=\"120\">";
}
}
</script>
</head>
<body>
<div>
<object id="mySWF" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="300" height="120">
<object type="application/x-shockwave-flash" data="SWFObjects/test_1.swf" width="300" height="120">
</object>
</div>
</body>
</html>

加载页面后如何调用该函数?此代码对我不起作用:(

确实有任何帮助。

谢谢

最佳答案

至少,您的代码无法工作,因为这里有语法错误 - 您没有连接“i”值:

document.getElementById("mySWF").innerHTML = 
"<object type=\"application/x-shockwave-flash\" data=\"SWFObjects/test_"i".swf\" width=\"300\" height=\"120\">";

应该是这样的:

.../test_" + i + ".swf...

根据您的要求,您最好使用 Flowplayer 之类的东西。如果您只使用 javascript,您所能做的就是 setInterval() 之类的操作,并且 javascript 将不会知道有关 swf 状态的任何信息 - 如果某些因素阻止 swf 在 10 秒内播放(或者您设置的间隔) ),脚本无论如何都会加载下一个 swf —— 非常脆弱的设计。 Flowplayer 使用播放列表,您可以在其中定义任意长度的列表,并且只有在上一个视频完成后才会播放下一个视频 - 无论需要多长时间。看看this sample 。我使用 JSON 返回可变长度的动态列表。使用您可以使用的任何服务器端语言来检查您的文件系统并返回文件名列表。

如果您根本无法使用 Flowplayer,请注意 HTML 对象语法会根据浏览器/版本的不同而有所不同。我看到您正在加载 swfobject.js,但您没有使用任何 swfobject 功能。为什么?看看swfojbect javascript API .

也就是说,以下脚本将处理间隔功能:

var loadSWFObjects = function() {
var i = 1;
var sInt = setInterval(function() {
if(i >= 50) {
clearInterval(sInt);
}else{
i++;
}
document.getElementById("mySWF").innerHTML = "<object type=\"application/x-shockwave-flash\" data=\"SWFObjects/test_" + i + ".swf\" width=\"300\" height=\"120\">";
}, 10000);
}

如果您希望它在页面加载时发生,请执行此操作:

window.onload = loadSWFObjects;

如果您需要更灵活/现代的加载处理程序,请尝试 this或谷歌。

关于用于动态加载 SWF 的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287705/

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