2010-11-19 70 views
0

我正在创建一个Flex AIR应用程序,该应用程序将数据从zip文件导入到sqlite数据库中。我需要显示一个进度条/“请稍候”微调器动画,以便用户等待,直到操作完成。如何在导入数据时创建“请稍候”微调器

我试图把一个弹出式微调器动画,但问题是,微调控制器停止旋转,只要数据库导入查询开始执行。

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

感谢

回答

1

您在这里遇到的问题是因为Flex是单线程应用程序。当你运行大量的处理时,线程不会更新UI,所以你的微调停止旋转。

我想你可以通过创建一个Green Thread来解决这个问题,以处理你的处理代码,如果它可以被分割。您可以检查here以获取Green Thread的as3实现。

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

+0

看看这个问题的接受答案:http://stackoverflow.com/questions/2731160/flex-as3-progressbar-doesnt-move – midhunhk 2011-05-25 12:40:46

+0

非常有趣。这无疑是一种为我做事的新方式。非常感谢您的帮助。 – Vinayak 2011-05-26 09:19:27

+0

非常欢迎你:) – midhunhk 2011-05-26 10:03:45

1

你的问题可能是由一个事实,即Flash是单线程引起的。尝试用定时器替换导入,以删除cpu-intesive操作。 这证明不成问题,一些代码可以加快调试:)

0

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

如果您想要进度条,只需增加一个变量,其中已经解析了多少字节,然后除以总字节数即进度条的比率。与微调器保持一致。

相关问题