ユーザーを認証し、(プリローダーを表示しながら) Adobe Air [Web ベースのフレックスアプリではなくデスクトップアプリケーション] でアプリケーションをロードする方法を見つけようとしています。
これは私がこれまでに達成できたことです:- ウィンドウがログインの詳細を要求し、検証されると、ログイン ウィンドウを非表示にし、アプリケーションのメイン ウィンドウのインスタンスを開きます。これには2つの問題があります:-
- 新しいウィンドウを開く必要があります (合計 2 つのウィンドウ)。ある状態でログイン フォームを表示し、別の状態でメイン アプリケーション ビューを単純に表示できれば、見栄えがよくなります。私もそれを試しましたが、問題は、ビュー コンポーネント以外に、フラッシュがすべてのアクション スクリプトを実行し、他の状態を準備状態に保つことです。null参照エラーなどをスローし始めるアプリケーションビュー中心のアクションスクリプトがあります。その上、両方のビューが作成されるため、全体が表示されるまでに時間がかかりますが、そのうちの1つだけが表示されます
- ユーザーが認証されたら、メイン アプリケーション ビューが読み込まれるまでプリローダーを表示したい
一言で言えば、これは私がやろうとしていることです:-
- ログイン ウィンドウをできるだけ早く読み込み、そこで停止します (アプリケーションの他の部分のアクション スクリプトは実行しないでください)。
- 認証後、アプリケーションのメイン ビューを読み込みます。読み込みが完了するまでプリローダーを表示する
- メイン ビューを同じウィンドウにロードします (新しいウィンドウを開いてログイン ウィンドウを非表示にするのではなく)。
これを実行する方法について、助けと指示が必要です。
ありがとう!
更新 1
さて、機能を 1 つのウィンドウに統合することができました。ただし、状態間の遷移はスムーズではありません。状態 1 はログイン画面です。ユーザーが正しいログイン資格情報を入力すると、ビューの状態 2 がアクティブになります。
状態 2 (多数の UI コンポーネントと大量のデータを含むグリッド) を読み込むには時間がかかります。それまでは、アプリケーションは空白になり、すべてがぎくしゃくして表示されます。移行をもっとスムーズにすることはできますか? 「読み込み中...」と表示するだけで十分です。状態 2 は、すべてが構築されるまで表示されず、現在の状態を状態 2 に変更するとすぐに状態 1 が消滅するためです。進行状況を監視し、次の状態が発生した場合にのみ状態を変更する方法はありますか?ロードされました!
更新 2
OK、遷移アニメーションが状態間で機能するようになりました。ただし、移行スイッチにはまだ問題があります。問題は、ログインが確認された後に切り替える状態には、多くのコンポーネントがあり、多くのデータが表示されることです。状態の読み込みが完了し、ビューが生成されたときに起動できるリスナー (存在する場合) をアタッチする方法はありますか? 遷移における現在のジャークのような効果は、状態が変更されたが、ビューがまだ完了していないためです。
状態 2 はデータベースから約 10000 行のデータをロードするため、状態 2 への状態変更はスムーズではありません。状態 2 が完全に引き出され、すべてのデータが取り込まれた後、ユーザーに見えるように状態を変更する方法はありますか? ここでは、creationComplete はあまり役に立ちません。
要するに、初期状態から状態のロードを開始し、完全にロードされたときにのみ表示する方法はありますか? つまり、状態 1 から状態 2 をロードするイベントを発生させることはできますが、状態 2 が完全にロードされた場合にのみ、状態 2 に視覚的に移行することができます。
更新 3
1 週間の消火活動、懸賞金の投稿、Web での清掃の後で、私はまだこれを修正できていません! UI が作成され、データが読み込まれる間、アプリケーション ウィンドウが応答しなくなります。Windows では、ウィンドウのタイトル バーに約 5 秒間「応答していません」と表示されます。したがって、データのフェッチとロードに時間がかかるため、UI が動かなくなります。デフォルトでは、これらすべてが 1 つのスレッドで行われます。
Adobe Air に基づいて開発している人々はどのようにこれを行っていますか? 私はほとんどの場合、実際のゲームがロードされる前にローディング画面を見てきました - そしてロードされると完全に機能します. 方法がなければなりません!