Проблема с отображением миниатюр изображений - PullRequest
0 голосов
/ 13 августа 2011

Я создал 3 movieClips и добавил в другой контейнер movieClip с именем mc .

for(i = 0;i<3;i++)
{
    imgBox = new box();
    mc.addChild(imgBox);
    imgBox.name = "box" + i;
}

xml имена изображений: image1.jpg, image2.jpg и imag3.jpg и сохранили в thumbArray .

for(i = 0;i<thumbArray.length; i++)
    {
        thumbLoader = new Loader();
        thumbLoader.load(new URLRequest(thumbArray[i]));
            thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onThumbLoaded);

    }

и я загрузил.

int count = -1;
function onThumbLoaded (e:Event):void
{
    count++;
    var img:Bitmap = Bitmap(e.target.content);
    MovieClip(mc.getChildByName("box" +count)).addChild(img);
}

наконец-то загрузился, но последовательность отображения выглядит следующим образом image3, image1 и image2 . Я хочу иметь последовательность image1, image2 и imag3 .

В чем проблема?

1 Ответ

1 голос
/ 13 августа 2011

Проблема в том, что у вас нет контроля над скоростью, с которой происходит каждая загрузка, поэтому нет гарантии, что первый загрузчик завершит работу первым и т. Д. Ваш лучший подход, вероятно, будет называть загрузчики и использовать имя для ссылкицель.Как то так:

for(i = 0;i<thumbArray.length; i++)
{
    thumbLoader = new Loader();
    //assign a name that matches the target box name, with "Loader" on the end
    thumbLoader.name = "box" + i + "Loader";
    thumbLoader.load(new URLRequest(thumbArray[i]));
    thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onThumbLoaded);
}

function onThumbLoaded (e:Event):void
{
    var img:Bitmap = Bitmap(e.target.content);
    //slice the "Loader" off the name
    var loadName:String = e.target.name.slice(0,-6);
    MovieClip(mc.getChildByName(loadName)).addChild(img);
}
...