首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个URLLoader

多个URLLoader
EN

Stack Overflow用户
提问于 2010-06-04 04:15:15
回答 2查看 1K关注 0票数 0

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

代码语言:javascript
复制
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));
}

问题是,我认为LOADING_PROGRESS是在所有加载完成之后才调度的,每个xml都是一个接一个地加载的,而不是异步加载的。

我怎样才能让它异步加载,并且让它的进度事件在每个进度节拍中被调用。

EN

回答 2

Stack Overflow用户

发布于 2010-06-04 15:01:03

我猜只有在通过快速连接观看时才会发生这种情况。尝试使用慢速连接进行查看(Charles Proxy具有人为降低连接速度的能力)。

票数 0
EN

Stack Overflow用户

发布于 2013-01-14 20:00:12

您可以自定义URLLoader。

代码语言:javascript
复制
public function SequenceLoader extends URLLoader {
    private var index:int;

    public function SequenceLoader(index:int) {
        this.index = index;
    }
}

然后在每个loadXML中,标记加载器:

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2969428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档