3

flexアプリケーションがロードする前に値を解析する必要がある構成xmlファイルがあります。

xml構成ファイルの値を取得できるようにする静的クラスを作成しました。

アプリケーションが最初にロードされるときにこのクラスを初期化していますが、同期的にロードされるLoaderクラスでxmlファイルがロードされると、xmlファイルが実際にロードされる前にクラスに値が要求されるため、エラーがスローされます。

このxmlファイルを同期的にロードする方法はありますか、または誰かがこれに対する回避策を提案できますか?値をリモートで変更できる必要があるため、ファイルをクラス変数として埋め込むことはできません。

4

5 に答える 5

0

いいトリック、Quoo、しかし...フレームワークがinitialized = trueを呼び出す前に、XMLファイルがロードされた場合を処理する必要があります。

このようなもの:private var _fileLoaded:Boolean = false;
private var _initialized:Boolean = false;

private function xmlCompleteHandler(event:Event):void
//xmlを処理し
ます_fileLoaded=true;
super.initialized = _fileLoaded && _initialized;
}
初期化されたパブリック関数セットをオーバーライドします(値:ブール値):void {
_initialized = value;
super.initialized = _fileLoaded && _initialized;

}

于 2009-09-08T06:50:10.720 に答える
0

re: ジャミ createComponentsFromDescriptors();は・・・今createDeferredContent();

于 2010-07-28T15:21:29.963 に答える
0

アプリケーションがオンラインになったときに、初期化されたプロパティをオーバーライドしてもうまく処理できないことがわかりました。

代わりに、プロパティ creationPolicy を使用することをお勧めします。このプロパティを「none」に設定すると、メソッド createComponentsFromDescriptors が呼び出されるまで、コンテナの子の作成が保留されます。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
                layout="absolute"
                preinitialize="{loadStuff();}"
                creationPolicy="none">

<mx:Script>
    <![CDATA[

        private function loadStuff():void {
            // Load your stuff here
        }

        private function loadStuffHandler(event:Event):void {
            // This should be called when loading (from loadStuff method) finishes
            createComponentsFromDescriptors();
        }

    ]]>
</mx:Script>

</mx:Application>
于 2009-11-17T07:06:12.120 に答える