0

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

我的 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)。

我有多个这样的场景,并且在我完成之前被卡住了。非常感谢您的帮助。干杯。

4

1 回答 1

0

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

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

于 2013-04-28T23:55:35.393 回答