使用For Each循环下载文件

时间:2013-04-25 09:45:13

标签: file for-loop download each loader

请记住,我是一个完整的NOOB。我不是要求任何人编写我的整个项目代码,但在很多情况下我很容易丢失。非常感谢您的帮助和耐心......

我的AS3代码如下所示:

var totalFeatureImageDownloads:Number = 0;  //total file size of all feature images, in bytes
var totalFeatureImageDownloaded:Number = 0; //total downloaded of all feature images, in bytes

for each(var featureimage:XML in xml.featureimages.imgurl)
  {
  trace(featureimage);
  var featureImageRequest:URLRequest = new URLRequest(featureimage);
  var featureImageLoader:URLLoader = new URLLoader(featureImageRequest);
  totalFeatureImageDownloads = totalFeatureImageDownloads + featureImageLoader.bytesTotal;
  trace(featureImageLoader.bytesTotal);
  }

目前,我在XML文件中有3个图像,并且可以正确跟踪其URL。但是,bytesTotal总是等于0.另外,我知道这个循环创建3个名称相同的URLRequest和3个名称相同的URLLoaders。我可能需要创建3个不同名称的。

我希望同时下载所有图像,我需要计算所有三个图像的组合文件大小,以及下载状态作为分数(bytesLoaded / bytesTotal)。

我有这样的多个场景,并且一直坚持到我完成这个。非常感谢您的帮助。欢呼声。

1 个答案:

答案 0 :(得分:0)

无法从新创建的URLLoader读取bytesTotal,因为客户端需要首先连接到Web服务器以获取要下载的文件的大小。您需要侦听URLLoader发送的第一个ProgressEvent.PROGRESS事件,一旦发送该事件,bytesTotal属性可能更准确。我说“更有可能”,因为如果在服务器上动态生成数据,则无法获得总文件大小,但在一般情况下,从服务器下载文件的情况下它会起作用。

我认识到一般情况。有一些库可以帮助解决这个问题,比如LoaderMax或BulkLoader。我个人使用BulkLoader:https://github.com/arthur-debert/BulkLoader