Apache flex 按顺序从2个URLloader加载并在FLEX中维护流

Apache flex 按顺序从2个URLloader加载并在FLEX中维护流,apache-flex,events,event-handling,synchronous,flow,Apache Flex,Events,Event Handling,Synchronous,Flow,我有一个flex应用程序,在creationComplete中我调用了一个方法,在该方法中我需要从服务器加载两个XML文件 目前我正在做以下工作 onCreationComplete = init(); private function init():void{ //loading first XML urlReq = new URLRequest(PATH_FOR_XML1); urlLdr = new URLLoader(urlReq); url

我有一个flex应用程序,在creationComplete中我调用了一个方法,在该方法中我需要从服务器加载两个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
}
实际上我所做的是,一旦加载一个URL完成,我就从中加载数据,并从同一个方法开始加载第二个URL加载程序

但问题是 我不希望在将2个XML加载到应用程序变量之前执行一些伟大的工作块

因为在SOMEGREATWORK块中,我将使用它们,在执行时,有时变量没有正确加载。

尝试以下方法:

    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
}

为什么不在loadXML2中开始“一些伟大的工作”呢?是的,这是一个很好的解决方案。。谢谢donno我错过了这个角度谢谢你的时间和建议,我已经为这个类定义了一个事件监听器,当我完成加载xml2时,我正在对事件进行调度,以便在事件调度上完成一些伟大的工作。我想这与我上面的代码是一样的。当xml2完成加载时,它会触发loadXML2(可能不是最好的函数名,但复制得很快)。因此,最终的结果是链式加载了2个xml文件,然后在第二个文件末尾,开始了一些伟大的工作。当然,您还需要加入错误处理程序,以便在xml由于某种原因未加载时,您的链能够做出适当的响应。