Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка картинок. Загржается только одна. (http://www.flasher.ru/forum/showthread.php?t=117515)

insected 29.10.2008 14:37

Загрузка картинок. Загржается только одна.
 
Добрый день, что то я не вижу ошибку...
Код:

                private function loadContent()
                {
                        try
                        {
                                xmlLoader = new URLLoader();
                                xmlLoader.addEventListener(Event.COMPLETE, onLoaded);
                                xmlLoader.load(new URLRequest("gallery.xml"));
                               
                        }
                        catch(e:Error)
                        {
                                trace("cant load galerry content");
                        }                       
                }

Код:

                private function onLoaded(e:Event):void
                {
                        source = XML(e.target.data);
                        xmlLoader.removeEventListener(Event.COMPLETE,onLoaded);
                        var imageList:XMLList = source.*.photo;
                        for each(var item:XML in imageList)
                        {
                                var path:String = item.@path;
                                loadImage(path);
                        }
                }

Код:

                private function loadImage(image:String):void
                {
                        imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadPic);
                        try
                        {
                                imageLoader.load(new URLRequest(image));
                        }
                        catch(e:Error)
                        {
                                trace("error loading image");
                        }
                }

Код:

                private function onLoadPic(e:Event):void
                {
                        items.push(Bitmap(imageLoader.content));
                }

1. Читаю xml, получаю пути к катинкам
2. Гружу картинки и добавляю их в массив items
3. Когда все это отрабатывает в массиве items оказывается только 1 элемент. Почему метод onLoadPic вызывается только 1 раз ?

iNils 29.10.2008 14:44

Если в цикле пытаться загрузить в imageLoader N-ое число картинок, то загрузится только последняя.

insected 29.10.2008 14:53

Хм а почему ? и как загрузить несколько?

smilenka 29.10.2008 15:06

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

insected 29.10.2008 15:09

Цитата:

Сообщение от smilenka (Сообщение 773551)
Вы используете один экземпляр лоадера ? и когда он пытается загрузить первую картинку, вы вызывается загрузку следующей. Можно вызывать загрузку очередной картинки после окончания загрузки предыдущей, либо создавать экземпляр лоадера для каждой загрузки.

Да, точно, так и есть спасибо. Каждый раз новый лоадер.

iNils 29.10.2008 15:09

Потому, что Loader не страдает раздвоением личности. :D
Для каждого изображения должен быть свой экземпляр Loader, или же грузить последовательно, и после загрузки очередного объекта, сбрасывать его в другой контейнер.


Часовой пояс GMT +4, время: 06:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.