ActionScript 3.0 сколько загрузчиков?

Я хочу загрузить 2 разных элемента в свое флеш-видео:

Во-первых, это динамическое фото (конкретный номер я беру из внешней переменной), во-вторых, это swf-видео...

Мой вопрос?

Я новичок в AS3, я увидел, что мне нужен загрузчик и я могу загрузить все.. но сколько у меня должно быть загрузчиков? Могу ли я использовать только одно изменение функции, вызываемой по конечному событию?

Большое Вам спасибо.

Эмануэле


person Emanuele    schedule 06.09.2010    source источник


Ответы (3)


Используйте загрузчик для каждого актива, который вы хотите загрузить. Загруженный ресурс будет прикреплен к этому загрузчику.

Взгляните на этот http://fluxdb.fluxusproject.org/libraries/135-bulk-loader или этот http://fluxdb.fluxusproject.org/libraries/243-somaloader

Оба справятся с загрузкой множества различных ресурсов.

person ocodo    schedule 06.09.2010

Загрузчики очень похожи на MovieClips — их должно быть столько, сколько вам нужно.

person Aurel Bílý    schedule 06.09.2010

Вы можете повторно использовать загрузчики, например:

var loader:Loader = new Loader();
loader.load(new URLRequest("http://someMedia.jpg"));

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void
{
    addChild(event.target.content);

    loader.load(new URLRequest("http://someOtherMedia.jpg"));
}

это загрузит оба изображения, но не очень хорошо для поддержания чистоты

Так что я бы предложил этот путь

var loader1:Loader = new Loader();
loader1.load(new URLRequest("http://someMedia.jpg"));
loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader1Complete);

var loader2:Loader = new Loader();
loader2.load(new URLRequest("http://someOtherMedia.jpg"));
loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader2Complete);

function onLoader1Complete(event:Event):void
{
    event.target.removeEventListener(Event.COMPLETE, onLoader1Complete);
    addChild(event.target.content);
    loader1.unload();
}

function onLoader2Complete(event:Event):void
{
    event.target.removeEventListener(Event.COMPLETE, onLoader2Complete);
    addChild(event.target.content);
    loader2.unload();
}

Это здорово, если у вас есть две или три вещи, которые вы хотите загрузить, но если у вас их несколько, предпочтительнее зацикливание функции.

var loader:Loader;

function loopLoader():void
{
    for (var i:int = 0; i < 10; i++)
    {
        loader = new Loader();
        loader.load(new URLRequest("http://someMedia.jpg"));
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
    }
}

function onLoaderComplete(event:Event):void
{
    event.target.removeEventListener(Event.COMPLETE, onLoaderComplete);
    addChild(event.target.content);
    loader.unload();
}

loopLoader();
person daihovey    schedule 06.09.2010