0

私はTOTAL 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 と同じ名前の URLLoader が 3 つ作成されることもわかっています。おそらく、3 つの異なる名前のものを作成する必要があります。

すべての画像を同時にダウンロードしたいので、3 つすべての合計ファイル サイズと、ダウンロード ステータスを分数 (bytesLoaded / bytesTotal) として計算する必要があります。

このようなシナリオが複数あり、これが完了するまで立ち往生しています。あなたの助けに感謝します。乾杯。

4

1 に答える 1

0

クライアントはダウンロードするファイルのサイズを取得するために最初に Web サーバーに接続する必要があるため、新しく作成された URLLoader から bytesTotal を読み取ることはできません。URLLoader によって送信された最初のイベントをリッスンする必要がありProgressEvent.PROGRESSます。そのイベントが送信されると、bytesTotal プロパティが正確になる可能性が高くなります。データがサーバー上で動的に生成された場合、ファイルの合計サイズを取得できないため、「可能性が高い」と言いますが、サーバーからファイルをダウンロードする一般的なケースでは機能します。

私は一般的なシナリオを認識しています。LoaderMax や BulkLoader など、これを支援するライブラリがあります。私は個人的に BulkLoader を使用しています: https://github.com/arthur-debert/BulkLoader

于 2013-04-28T23:55:35.393 に答える