Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 多URL加载程序_Flash_Actionscript 3_Asynchronous_Urlloader - Fatal编程技术网

Flash 多URL加载程序

Flash 多URL加载程序,flash,actionscript-3,asynchronous,urlloader,Flash,Actionscript 3,Asynchronous,Urlloader,我正在用URLLoader加载多个xml文件 for (var i=0;i<xmlCount;i++) { loadXML(xmlFiles[i], i); } public function loadXML(req:String=null, _id:Number=0):void { var loader:URLLoader = new URLLoader(); loader.addEventListener(ProgressEvent.PROGRESS,

我正在用URLLoader加载多个xml文件

for (var i=0;i<xmlCount;i++) {
     loadXML(xmlFiles[i], i);
}

public function loadXML(req:String=null, _id:Number=0):void {
     var loader:URLLoader = new URLLoader();
     loader.addEventListener(ProgressEvent.PROGRESS, 
             function a(e:ProgressEvent) {XMLLoadProgress(e, _id);});
     loader.addEventListener(Event.COMPLETE, XMLLoadFinished);
     loader.load(new URLRequest(req));

}

private function XMLLoadProgress(e:ProgressEvent=null, _id:Number=0):void {
     dispatchEvent(new LoadingEvent(Model.LOADING_PROGRESS, _id, (e.bytesLoaded/e.bytesTotal)*100));
}
public function SequenceLoader extends URLLoader {
    private var index:int;

    public function SequenceLoader(index:int) {
        this.index = index;
    }
}
问题是,我认为在完成所有加载之后,加载进度会被调度,并且每个xml都是逐个加载的,而不是异步加载的


我怎样才能使它异步加载,并使它为每个进度标记调用进度事件。

我猜这只会在通过快速连接查看时发生。尝试使用慢速连接进行查看。Charles Proxy可以人为地降低连接速度。

您可以自定义URL加载程序

for (var i=0;i<xmlCount;i++) {
     loadXML(xmlFiles[i], i);
}

public function loadXML(req:String=null, _id:Number=0):void {
     var loader:URLLoader = new URLLoader();
     loader.addEventListener(ProgressEvent.PROGRESS, 
             function a(e:ProgressEvent) {XMLLoadProgress(e, _id);});
     loader.addEventListener(Event.COMPLETE, XMLLoadFinished);
     loader.load(new URLRequest(req));

}

private function XMLLoadProgress(e:ProgressEvent=null, _id:Number=0):void {
     dispatchEvent(new LoadingEvent(Model.LOADING_PROGRESS, _id, (e.bytesLoaded/e.bytesTotal)*100));
}
public function SequenceLoader extends URLLoader {
    private var index:int;

    public function SequenceLoader(index:int) {
        this.index = index;
    }
}
然后在每个loadXML中,标记加载程序:

public function loadXML(req:String=null, _id:Number=0):void {
     var loader:SequenceLoader = new SequenceLoader(_id);
     loader.addEventListener(ProgressEvent.PROGRESS, 
             function a(e:ProgressEvent) {XMLLoadProgress(e);});
     loader.addEventListener(Event.COMPLETE, XMLLoadFinished);
     loader.load(new URLRequest(req));
}

private function XMLLoadProgress(e:ProgressEvent=null):void {
   var loader:SequenceLoader  = e.target as SequenceLoader;
   var loaderIndex:int = loader.index;
  //do other stuff
}

尝试了模拟下载,但没有更改。