如何在flex-as3的循环中显示进程的当前progressBar值?

时间:2011-04-26 14:54:38

标签: flex actionscript-3

当进程是一个需要很多秒才能完成工作的循环时,我不知道如何显示progressBar组件中的当前进度。 在循环内部,我setProgress并更新每个cicle中的progressBar标签,但它没有显示到作业完成。我不需要这个,因为我想看到过程的进展。 谢谢。

2 个答案:

答案 0 :(得分:1)

如果你的意思是像forwhile这样的普通循环,答案是:它是不可能的。 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
}