我为.swf
制作了一个进度条。
<head>
中的代码:
function ProgressBar(){
setTimeout(function (){
if (swfobject.getObjectById("Object").IsPlaying()) {
var TotalFrames = swfobject.getObjectById("Object").TotalFrames();
console.log(console.log("TotalFrames: " + TotalFrames));
var TCurrentFrame = swfobject.getObjectById("Object").CurrentFrame;
console.log(TCurrentFrame);
}
}, 200);
}
<body>
中的代码:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="600" id="Object">
<param name="movie" value="./Flash.swf">
<param name="wmode" value="transparent">
<param name="loop" value="false">
<param name="play" value="false">
<param name="quality" value="high">
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="./Flash.swf" width="600" height="600" id="Object">
<param name="wmode" value="transparent">
<param name="loop" value="false">
<param name="play" value="false">
<param name="quality" value="high">
</object>
<!--<![endif]-->
</object>
jQuery的:
$("#button").on("click", function(){
ProgressBar();
})
我想要输出TotalFrame
和CurrentFrame
,但函数SetInterval
只显示一次结果。
在控制台日志中输出:
TotalFrames: 745
undefined
102
我该怎么写?错误是什么?
答案 0 :(得分:0)
您的ProgressBar
功能正在使用setTimeout()
,而不是setInterval()
。 setTimeout()
只会触发超时一次。
答案 1 :(得分:0)
也许是因为您没有在问题标题中使用setInterval
,但在代码中使用setTimeout
;)