在flex中加载长循环的进度

时间:2011-12-02 00:27:00

标签: flash actionscript-3 flex

我有一个解析和处理大量数据的循环,需要很长时间。当它消失的时候,屏幕是空白的,我想知道是否有办法装载装载机或计数器?

由于它的工作量有限,我认为我可以从循环中更新进度,但进一步的读数显示它是不可能的。

有什么想法吗?感谢

3 个答案:

答案 0 :(得分:7)

第一步是将您的流程转变为快速完成的块,以使您的应用程序保持响应。

然后,启动一个尽可能快地运行的计时器。在每个TIMER事件中,在特定阈值下完成尽可能多的块。这会降低整个过程的速度,因此您希望阈值尽可能高。

您可以查看我的AsyncSWFModifier课程,了解有关工作示例的信息。这是我扩展的基类,它覆盖了run方法。我不会在这里粘贴它,因为该类中有一些不相关的细节。

答案 1 :(得分:1)

这些答案是正确的,主要问题是Flash Player是单线程的。

答案 2 :(得分:0)

将您的变量设为私有(在方法范围之外),使一些Timer触发方法,并且您将获得一些不会锁定UI的伪线程。