1

ローダーの配列を作成するにはどうすればよいですか?

全体像:

Flex でマッピング プログラムを作成しました。マッピング プログラムを変更して、flex ファイルに必要な正確な数のアイテム ローダーを追加するのではなく、新しい xml ファイルにドロップするだけでよいようにしたいと考えています。そのため、XML ファイル内にある画像ファイルをロードできる一連のローダーを探していると思います。

xml ファイルの例:

<locations>
      <location>
        <name>Big Star</name>
        <street>123 Some St.</street>
        <city>City</city>
        <state>XX</state>
        <zip>555555</zip>
        <lat>12.34567</lat>
        <long>-67.54321</long>
        <iconFile>bigStar_icon.gif</iconFile>
        <imageFile>bigStar_img.swf</imageFile>
        <motion>no</motion>
        <featured>yes</featured>
        <category>Grocery</category>
      </location>
</locations>

この xml には 2000 の場所が含まれる場合があります。

4

2 に答える 2

1

ええ、それはかなり悪い質問です。文字通り(面白ければ):

var loaders:Array = [new Loader(), new Loader()];

あなたが尋ねたものを読み込もうとすると、あなたはたくさんのものをロードして、それらすべてを一緒にロードしようとしているように聞こえます...そしてあなたが尋ねなければならないなら、あなたは苦労するでしょう。

ただし、バルクローダーライブラリを使用してみることができます。これにより、これはかなりうまくいきます。おそらく他にもあります。

于 2010-02-21T20:39:28.750 に答える
1

少しあいまいなので、質問に対する直接の回答ではありません + @alecmce はすでに回答を出しています (この状況でも BulkLoader などのローダーキューを使用します)。

ただし、少し前に同様の質問に気付いたので、すべてのローダーを一度にインスタンス化するのは少し間違っていると感じていることを指摘したかっただけです。

URL を保存して 1 つずつ処理するのは少し適切ではないでしょうか。

基本的な例: (テストせずに入力したことに注意してください...)

// So here's the point: only Strings are stored ... 
var urls:Array = new Array('image1.jpg','image2.jpg',image3.jpg);  

loadNext();

function loadNext()
{
    if(urls.length() == 0)
        return;

     load(urls.shift())
}

function load(url:String):void
{
    // The loader is created lazily just before before we need it
    var loader:Loader = new Loader(new URLRequest(url));
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded)
    loader.load(url);

}

function onLoaded(e:Event):void
{
     event.target.removeEventListener(Event.COMPLETE, onLoaded);
     addChild(event.target.content); // ... or whatever has to happen here.
     loadNext();
}
于 2010-02-21T21:27:31.117 に答える