Flash 多URL加载程序
我正在用URLLoader加载多个xml文件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,
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
}
尝试了模拟下载,但没有更改。