AS3 Loader () - загрузка нескольких изображений одним загрузчиком - PullRequest
1 голос
/ 11 марта 2010

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

Я хотел бы использовать только один экземпляр Load () и обрабатывать различные назначения изображений в обработчике onComplete ...

вот моя первая попытка:

var buttonLdr:Loader = new Loader();
buttonLdr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
buttonLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);

whichButton = 0;
buttonLdr.load(new URLRequest("images/test.png"));

whichButton = 1;
buttonLdr.load(new URLRequest("images/testDown.png"));

whichButton = 2;
buttonLdr.load(new URLRequest("images/testHover.png"));

private function onLoadComplete(e:Event):void
{
    switch(whichButton)
    {
        case 0:
            buttonBgUp = e.target.loader.content;
            break;
        case 1:
            buttonBgDown = e.target.loader.content;
            break;
        case 2:
            buttonBgHover = e.target.loader.content;
            break;
    }
    create();
}

Довольно простой подход ... хотя он вызывает функцию только при последнем вызове, устанавливая buttonBgHover, но больше ничего.

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

-Спасибо

1 Ответ

1 голос
/ 11 марта 2010

Вы должны вызывать следующую загрузку только после завершения предыдущей загрузки.

whichButton = 0;
buttonLdr.load(new URLRequest("images/test.png"));
private function onLoadComplete(e:Event):void
{
switch(whichButton)
{
    case 0:
         buttonBgUp = e.target.loader.content;
        whichButton = 1;
        buttonLdr.load(new URLRequest("images/testDown.png"));
        break;
    case 1:
         buttonBgDown = e.target.loader.content;
        whichButton = 2;
        buttonLdr.load(new URLRequest("images/testHover.png"));
        break;
    case 2:
        buttonBgHover = e.target.loader.content;             
        break;
}
create();

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...