![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
столкнулся с проблемой как загрузка изображений в определенную ячейку
private function xmlLoaded(e:Event):void { //Создаем новый XML объект. xml = new XML(loader.data); xml.ignoreWhitespace = true; number_load_image = 0; //Количестко загружаемых картинок. Значение берется из XML. numberOfImages = xml.number_of_images; //Цикл находит картинки в XML файле. for each (var image:XML in xml.images.image) { var imageHolder:Sprite = new Sprite(); //Создается загружчик картинок. var imageLoader:Loader = new Loader(); //Добавляем загрузчик в кнопку. imageHolder.addChild(imageLoader); //загружаем картинки. var s:String = image.url; // <number>1</number> номер куда загружаться number_load_image = image.number; //number_load_image = image.number; imageLoader.load(new URLRequest(image.url)); //Слушатель на завершение загрузки. imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); } } private function imageLoaded(e:Event):void { //Обновляем число загруженных картинок. _array_images.push(new GameImage(e.target.content.bitmapData.clone(), number_load_image)); numberOfLoadedImages++; //Сглаживаем загруженные картинки (Мы знаем, что загрузчик содержит картинку). e.target.content.smoothing = true; //Проверяем, все ли картинки загруженны. if (numberOfLoadedImages == numberOfImages) { //complite. trace("all imeges : " + numberOfLoadedImages); if (_func != null) _func.call(); } И number_load_image == 4 , так как он сначала у меня в слушатели загрузчики забивает, то и number_load_image = 4 , то есть все картинки , как сделать что бы каждая картинка знала куда поместиться (свой ID знала) |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
Для начала, изображения все же лучше грузить последовательно, а не одновременно.
Можно сразу добавлять объект куда вам нужно, еще до загрузки. Если картинки могут повторяться, лучше использовать загруженную ранее BitmapData и не грузить повторно.
__________________
Griver |
|
|||||
|
а можно на моем примере показать как это ?
я беру bitmap уже из евента. |
|
|||||
|
ааа то есть GameImage сам должен озаботиться своим наполнением
так ? |
|
|||||
|
а еще вопрос , я щас все сделал , но вот как мне проверить
что все images загрузились ? что бы дальше их использовать. то есть у меня где то выше написано LoadImages(XML); CreateMap(); (использует ресурсы загруженные) Но дело в том , что не факт что они загрузились , или можно по этому поводу не переживать или как лучше сделать , я когда то делал просто через таймер паузу в 1 сек ... но это плохой выход. ((( Тот способ был таков , если все images загружены , я перехожу в кол бек который я даю в конструкторе загрузки. |
|
|||||
|
при создании своих GameImage подписывайте их на какое-нибудь событие. например тот же Event.COMPLETE.
внутри, когда поймаете это событие от лоадерИнфо, переданного Loadera просто редиспатчите его . а наверху считайте количество комплитов и ...все ) либо подписывайте на комплит и внутри GameImage и в главном классе. в последнем просто для подсчета. да, не забывайте отписываться от событий. ваша конструкция e.target.content.bitmapData.clone() плодит дубль, но в то же время оригинал со всем своим сарафаном будет висеть в памяти.
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Цитата:
e.target.content.bitmapData.clone() клон делать низя , как я понял ? ... редиспатчите его можно поподробней это как .. .? |
|
|||||
|
примерно так:
в главном классе var image:GameImage = new GameImage(e.target.loader,somePosition); image.addEventListener(Event.COMPLETE,checkConpleteCount); ... private function checkConpleteCount(e.Event):void{ //do smt; } public function GameImage(loader:Loader,position:???):void{ loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); } ... private function onComplete(e:Event):void{ this.dispatchEvent(e); } Цитата:
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:50. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|