Один загрузчик появляется в двух MC - PullRequest
0 голосов
/ 07 января 2012

в соответствии с моим последним вопросом (предлагаю прочитать его для полного понимания этого вопроса) Я пришел к выводу, что мне нужно использовать несколько загрузчиков.Сначала я думал: «Ну, я просто использую шестнадцать погрузчиков», но должен ли я?Может быть, я должен создать только восьмое из них?Затем я нашел этот учебник .

Если я прав, мне просто нужно создать восемь загрузчиков, затем добавить addChild для исправления img1 / img2?

Как вы думаете, ребята?Я буду благодарен за ответ.

1 Ответ

0 голосов
/ 07 января 2012

Я думаю, что вам нужен только один загрузчик, но это зависит от того, сколько вещей вы хотите загрузить одновременно.8 загрузчиков будут иметь (возможно) 8 изображений, отправляемых за один раз (это, конечно, может быть ограничено сервером).Вы должны назначить все изображения одному массиву, а затем зациклить этот массив, где это необходимо.Если вы хотите загрузить 8 изображений, то (используя код в связанном примере) это будет выглядеть примерно так:

import mx.controls.Loader;

var imgArr:Array = ["img1.jpg","img2.jpg",/* and so on */,"imgN.jpg" ];
var ldrArr:Array = [];

for (var :Number = 0;  < imgArr.length; ++) 
{
    ldrArr[i] = new Loader();
    ldrArr[i].contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);
    ldrArr[i].load(new URLRequest(imgArr[i]));
}

function finishLoading(e:Event):void {
    // Get the current loader
    var curLdr:Loader = (e.target as Loader);
    curLdr.contentLoaderInfo.removeEventListener(Event.COMPLETE, finishLoading);

    addChild(curLdr); // you will have to fix this to actually load the image
}

Но если вам нужен только один загрузчик, попробуйте это:

import mx.controls.Loader;

var imgArr:Array = ["img1.jpg","img2.jpg",/* and so on */,"imgN.jpg" ];
var ldr:Loader;

function startLoader() {
    if ( imgArr.length > 0 )
    {
        ldr = new Loader();
        ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);
        ldr.load(new URLRequest(imgArr.pop());
    }
}

function finishLoading(e:Event):void {
    ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, finishLoading);

    addChild(ldr); // you will have to fix this to actually load the image

    // start over with next image:
    startLoader();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...