0

私は、creationCompleteでサーバーから2つのXMLファイルをロードする必要があるメソッドを呼び出すフレックスアプリケーションを持っています。その後、さらに先に進む必要があります..

現在、私は次のことを行っています

onCreationComplete = init();    

private function init():void{

    //loading first XML

    urlReq = new URLRequest(PATH_FOR_XML1);
    urlLdr = new URLLoader(urlReq);
    urlLdr.addEventListener(Event.COMPLETE, doEvent);

    //Some other operation  goes here say SOMEGREATWORK    
}

**doEvent method**

private function doEvent(evt:Event):void{

    //Loading the data of XML1 to some variable which i use application wide

    urlReq = new URLRequest(PATH_FOR_XML2);
    urlLdr = new URLLoader(urlReq);
    urlLdr.addEventListener(Event.COMPLETE, loadXML2);
}

private function loadXML2(evt:Event):void{
    //Loading the data of XML2 to the some varibale which i use application Wide
}

実際に私が行っていたのは、1 つの URL の読み込みが完了したら、そこからデータを読み込み、同じメソッドから 2 番目の URL ローダーの読み込みを開始することです。

しかし、問題は、2 つの XML がアプリケーション変数にロードされる前に SOMEGREATWORK ブロックを実行したくないことです。

SOMEGREATWORK ブロックでは、それらを使用するため、これが実行されるまでに、変数が正しくロードされないことがあります。

4

1 に答える 1

0

これを試して:

    onCreationComplete = init();


private function init():void{

    //loading first XML

    urlReq = new URLRequest(PATH_FOR_XML1);
    urlLdr = new URLLoader(urlReq);
    urlLdr.addEventListener(Event.COMPLETE, doEvent);

}


private function doEvent(evt:Event):void{

    //Loading the data of XML1 to some variable which i use application wide


    urlReq = new URLRequest(PATH_FOR_XML2);
    urlLdr = new URLLoader(urlReq);
    urlLdr.addEventListener(Event.COMPLETE, loadXML2);

}

private function loadXML2(evt:Event):void{
    //Some other operation  goes here say SOMEGREATWORK
}
于 2011-04-07T20:30:13.613 に答える