Я сделал индикатор выполнения для .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
Как это написать? Какая ошибка?
Возможно, потому, что вы не используете setInterval
как в заголовке вопроса, а setTimeout
в своем коде;)
Функция ProgressBar
использует setTimeout()
, а не setInterval()
. setTimeout()
только один раз срабатывает таймаут.
setTimeout
, но вам придется запускать новый таймер в каждомsetTimeout
чтобы создать желаемый эффект.