如何在导入数据时创建“请等待”微调器

时间:2010-11-19 15:22:02

标签: flex actionscript-3 air

我正在创建一个Flex AIR应用程序,它将zip文件中的数据导入到sqlite数据库中。我需要显示一个进度条/“Please Wait”微调器动画,以便用户等待操作完成。

我试图设置一个弹出式微调器动画但问题是,一旦数据库导入查询开始执行,微调器就会停止旋转。

我需要同时运行微调器代码和导入代码而不是顺序运行。

由于

3 个答案:

答案 0 :(得分:1)

您的问题可能是因为Flash是单线程的。尝试使用at timer替换import,以删除cpu-intesive操作。 它证明不是问题,一些代码可以加快调试:)

答案 1 :(得分:1)

您面临的问题是因为Flex是单线程应用程序。当您运行大量处理时,线程不会更新UI,因此您的微调器会停止旋转。

我认为您可以通过创建Green Thread来处理您的处理代码(如果可以将其切除)来解决此问题。您可以查看here以获取绿色线程的as3实现。

如果需要,我可以提供更多关于实施它的信息。

答案 2 :(得分:0)

所以 - 如果你只想要一个微调器,你不需要更多的数据。但是,如果你想要一个进度条,你只需要知道有多少数据(拉链的大小很可能足够精确)。然后 - 有一些 Event.ENTER_FRAME 监听器,你将在其中获取部分数据,插入表格......然后停在那里。然后它将显示东西的动画。试着看看有多少数据是最优的......最有可能的是在那里添加一个FPS计量表,如果它太低,可以降低数量。

如果你想要进度条,只需增加一个已经解析了多少字节的变量,并将其除以总字节数 - 进度条的比率。与旋转器一样休息。