2010-11-19 75 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儀表,如果數量太少,請降低數量。

如果您想要進度條,只需增加一個變量,其中已經解析了多少字節,然後除以總字節數即進度條的比率。與微調器保持一致。

相關問題