当进程是一个需要很多秒才能完成工作的循环时,我不知道如何显示progressBar组件中的当前进度。 在循环内部,我setProgress并更新每个cicle中的progressBar标签,但它没有显示到作业完成。我不需要这个,因为我想看到过程的进展。 谢谢。
答案 0 :(得分:1)
如果你的意思是像for
或while
这样的普通循环,答案是:它是不可能的。 Flash中的循环是同步的,但所有动画(包括编程)都是基于帧的异步。所以唯一的方法是在多个帧之间分配你的循环。
答案 1 :(得分:0)
有可能,只需在您需要使用定时器的时候。
import flash.utils.Timer;
import flash.events.TimerEvent;
var loopNum : uint = 17598; // loop length ( forrmer for or while limit )
var tick : uint = 0;
var timer:Timer = new Timer ( 10, loopNum );
timer.addEventListener ( TimerEvent.TIMER, handleLoopTick );
timer.start ();
function handleLoopTick ( e : TimerEvent )
{
trace ( this, ( tick / loopNum ) * 100 ); // outputs percentage for example
tick++; // increasing the tick
}