私はAIRアプリケーションでいくつかのテーマを実装することに決めました。 CSSファイルをSWFファイルに変換し、メインファイルからスタイルリンケージを削除しました。ファイルに保存されているユーザー設定に基づいて、使用するテーマを決定します。すなわち、 StyleManager
クラスを使用してSWFファイルをロードします。Flex AIRアプリケーションで動的にスタイルをロード
StyleManager.loadStyleDeclarations
メソッドによって返されたIEventDispatcher
オブジェクトのイベントリスナーをStyleEvent.COMPLETE
というように追加して、アプリケーションウィンドウを非表示にしました。 StyleEvent.COMPLETE
が発生した後、メインウィンドウが表示されました。
私が今問題にしているのは、数秒間、選択されたスタイルを使用する前に、スタイルなしで白いキャンバスとすべてのコンポーネントを見ることができます。私のアプローチが正しいかどうかを知りたいのですが、これを正しく実装するために何か変更を加える必要がありますか?
+1良いもの、初期化するとおそらくはうまくいくでしょう。 – Ryan
'preinitialize'と' initialize'で書くことの違いを教えてください。私は今まで 'creationComplete'と' applicationComplete'しか使用していませんでした。 – midhunhk
オフハンド:コンテナ/オブジェクトのすべての子が作成されているわけではないので、事前初期化は使用しません。変数の設定には常に「初期化」を使用し、dataProviderコレクションにはデータを提供します(Adobeが推奨するように)。すべてのコンテナの子がこの時点で作成されています。私たちのイベントリスナーはすべて、creationComplete(アドビ推奨どおり)に設定されます。これは、すべての子と子の子が作成されて表示された後に起動されます。 – Ryan