2013-08-01 62 views
2

我想在Adobe Air [桌面應用程序,而不是基於web的flex應用程序]中驗證用戶身份並加載應用程序(同時顯示預加載程序)的方法。Adob​​e Air中的用戶登錄驗證和預加載程序

這是我迄今爲止能夠實現的目標: - 一個窗口要求登錄細節,一旦驗證,我使登錄窗口不可見並打開應用程序主窗口的一個實例。這有兩個問題: -

  1. 我必須打開一個新窗口(總共2個窗口)。如果我能夠簡單地在一個狀態下顯示登錄表單並在另一個狀態下顯示主應用程序視圖,它會更好看。我也嘗試過,但問題是除了視圖組件外,flash還會執行所有動作並保持其他狀態。有一些應用程序視圖中心動作開始拋出空引用錯誤等。最重要的是,整個事情需要一段時間才顯示,因爲兩個視圖都被創建,雖然只有其中一個顯示
  2. 我想顯示預加載,一旦用戶通過驗證,直到主應用視圖加載

概括地說,這就是我想要做的事: -

  1. 加載登錄窗口儘可能快並停在那裏(應用程序的其他部分的動作不應該運行)
  2. 發佈身份驗證,加載應用程序的主視圖。直到裝載在同一個窗口中完成
  3. 加載主視圖(而不是打開一個新的窗口,使登錄一個不可見的)

需要幫助和方向,顯示預加載,如何這可以被執行。

謝謝!

更新1

好了,現在我已經成功地整合在一個單一窗口的功能。然而,國家之間的過渡並不順利。 狀態1是登錄屏幕。如果用戶輸入正確的登錄憑證,則視圖的狀態2變爲活動狀態。

現在爲狀態2加載(它的一堆UI組件和具有數據負載的網格)需要時間。在此之前,該應用程序將變爲空白,然後全部顯示爲混蛋。過渡可以更平滑嗎?只顯示「加載...」就足夠了。因爲狀態2不會顯示出來,直到我將狀態2更改爲狀態2時,狀態1就消失了。是否有任何方法可以監視進度並僅在下一狀態有變化時才更改狀態已加載!

更新2

好吧,我得到的過渡動畫狀態之間的工作。但是,轉換開關仍然存在問題。問題在於,我在登錄後切換到的狀態已經驗證了很多組件並顯示了大量數據。 有沒有一種方法可以附加監聽器(如果有的話),當狀態加載完成並且視圖已經生成時,我可以觸發它!當前的混亂在轉型中的效果是因爲國家已經改變,但觀點尚未完成。

State Change to State 2 is not smooth as State 2 loads about 10000 rows of data. Is there a way I can change the state visible to the user, after state 2 has been completely drawn out and has pulled in all data? creationComplete doesn't help much here.

狀態變化到狀態2不流暢的狀態2個負載從數據庫中約10000行數據。在狀態2完全抽出並拉入所有數據之後,有沒有辦法可以爲用戶明顯改變狀態? creationComplete在這裏幫不了多少忙。

總之,有沒有辦法從初始狀態開始加載一個狀態,並且只有當它完成加載時纔可見?即我可以發射從狀態1的事件來加載狀態2,但在視覺上轉變爲狀態2僅當狀態2是完全加載..

UPDATE 3

消防,張貼經過一週的一個賞金和通過網絡清理我還沒有能夠解決這個問題!我的應用程序窗口在UI創建和數據加載的時候變得沒有響應。在Windows中,它甚至在窗口標題欄顯示'Not Responding'約5秒鐘。所以它的UI卡住了,因爲數據需要一些時間來獲取和加載 - 所有這些都默認發生在單個線程中。

基於Adobe Air開發的人如何做到這一點?在加載實際遊戲之前,我總是看到一個加載屏幕 - 加載時,它的功能完全正常。必須有一種方法!

+0

「Flash並執行所有的動作,並保持其他國家準備好了」這並不是普遍適用的和完全依賴於美國和意見的執行情況。認證之後你在做什麼足夠長的時間需要預加載器?既然你沒有分享你的實現細節,我不確定我們如何提供幫助。 – JeffryHouser

+0

感謝您的回覆。我爲登錄所做的事情就是這樣。主應用程序視圖的初始可見性爲false。在creationComplete上,我打開一個新窗口(登錄窗口)。登錄驗證後,我關閉登錄窗口並顯示應用程序窗口。現在,這個流程使得我的所有動作都能夠執行主應用程序視圖。此外,即使我只需要加載應用程序窗口,它也需要加載應用程序所需的全部內存資源。 – Rohan

+0

我該如何着手打開2個獨立的窗口,而只有1個窗口,其中1個視圖狀態用於登錄,另一個用於應用程序。在身份驗證顯示應用程序視圖狀態並執行與該視圖狀態相關的動作腳本時(應用程序視圖) – Rohan

回答

2

在網格中加載10000行的耗時問題可以在任何Web應用程序中使用任何基於Web的語言,因爲Web應用程序需要在具有自己的資源限制的Web瀏覽器環境中運行。

所以我建議你在加載視圖時不加載所有10000條記錄。首先加載1000條記錄,然後保留一個標籤爲「下一個」或「顯示更多」的鏈接或按鈕,並在該點擊時從數據庫中取出下一批1000條記錄。這樣你就可以完成你的任務。

感謝,

Jigar皇座