2013-09-21 3 views
0

Я сделал индикатор выполнения для .swf.Почему SetInterval не работает (работает только один раз)

Код в <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

внимание к деталям – akonsu

+0

@akonsu ой .. спасибо –

+0

Относительно отредактированном вопрос: вы говорите, что до сих пор Безразлично» t работать даже после того, как вы изменили на 'setInterval()' вместо 'setTimeout()', который вы изначально имели? – nnnnnn

ответ

0

Возможно потому, что вы не используете setInterval как в названии вашего вопроса, но setTimeout в вашем коде;)

+0

oh ... извините и спасибо) –

+0

@NikTip Нет проблем;) Убедитесь, что вы получаете разницу между обоими. Также обратите внимание, что вы действительно можете использовать 'setTimeout', но вам нужно будет запустить новый таймер в каждом обратном вызове' setTimeout' для создания желаемого эффекта. – plalx

+0

уверен, я уже проверил, все работает ... –

0

ProgressBar функция setTimeout(), а не setInterval(). setTimeout() срабатывает только один раз.

+0

oh ... извините и спасибо) –

Смежные вопросы