为什么SetInterval不起作用(它只工作一次)

时间:2013-09-21 03:34:37

标签: javascript jquery setinterval

我为.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();
})

我想要输出TotalFrameCurrentFrame,但函数SetInterval只显示一次结果。

在控制台日志中输出:

TotalFrames: 745
undefined
102

我该怎么写?错误是什么?

2 个答案:

答案 0 :(得分:0)

您的ProgressBar功能正在使用setTimeout(),而不是setInterval()setTimeout()只会触发超时一次。

答案 1 :(得分:0)

也许是因为您没有在问题标题中使用setInterval,但在代码中使用setTimeout;)