Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.02.2011, 12:13
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 1  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
По умолчанию загрузка images в определенное место в vector

столкнулся с проблемой как загрузка изображений в определенную ячейку

Код AS3:
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();
 
			 }
mxl

Код AS3:
<image>
<number>0</number>
<url>stone.png</url>
</image>
И number_load_image == 4 , так как он сначала у меня в слушатели загрузчики забивает, то и number_load_image = 4 , то есть все картинки , как сделать
что бы каждая картинка знала куда поместиться (свой ID знала)
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 21.02.2011, 12:47
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Для начала, изображения все же лучше грузить последовательно, а не одновременно.
Можно сразу добавлять объект куда вам нужно, еще до загрузки.
Если картинки могут повторяться, лучше использовать загруженную ранее BitmapData и не грузить повторно.
__________________
Griver

Старый 21.02.2011, 12:52
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 3  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
Цитата:
Сообщение от mre Посмотреть сообщение
Можно сразу добавлять объект куда вам нужно, еще до загрузки.
а можно на моем примере показать как это ?
я беру bitmap уже из евента.
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 21.02.2011, 12:57
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 4  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
GameImage создавайте до загрузки, и сразу располагайте его в нужную ячейку, а затем, если есть такая необходимость, внутри него ожидайте окончания загрузки.
__________________
Griver

Старый 21.02.2011, 13:08
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 5  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
ааа то есть GameImage сам должен озаботиться своим наполнением
так ?
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 21.02.2011, 13:38
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 6  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Верно.
__________________
Griver

Старый 21.02.2011, 13:45
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 7  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
а еще вопрос , я щас все сделал , но вот как мне проверить
что все images загрузились ?
что бы дальше их использовать.
то есть у меня где то выше написано
LoadImages(XML);
CreateMap(); (использует ресурсы загруженные)

Но дело в том , что не факт что они загрузились , или можно по этому поводу не переживать
или как лучше сделать , я когда то делал просто через таймер паузу в 1 сек ... но это
плохой выход. (((
Тот способ был таков , если все images загружены , я перехожу в кол бек который я даю в конструкторе загрузки.
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 21.02.2011, 13:53
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 8  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
при создании своих GameImage подписывайте их на какое-нибудь событие. например тот же Event.COMPLETE.
внутри, когда поймаете это событие от лоадерИнфо, переданного Loadera просто редиспатчите его .
а наверху считайте количество комплитов и ...все )
либо подписывайте на комплит и внутри GameImage и в главном классе. в последнем просто для подсчета.
да, не забывайте отписываться от событий.
ваша конструкция e.target.content.bitmapData.clone() плодит дубль, но в то же время оригинал со всем своим сарафаном будет висеть в памяти.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 21.02.2011, 13:57
DanQuimby вне форума Посмотреть профиль Отправить личное сообщение для DanQuimby Найти все сообщения от DanQuimby
  № 9  
Ответить с цитированием
DanQuimby
 
Аватар для DanQuimby

Регистрация: Feb 2007
Сообщений: 109
Отправить сообщение для DanQuimby с помощью ICQ
Цитата:
Сообщение от cleptoman Посмотреть сообщение
при создании своих GameImage подписывайте их на какое-нибудь событие. например тот же Event.COMPLETE.
внутри, когда поймаете это событие от лоадерИнфо, переданного Loadera просто редиспатчите его .
а наверху считайте количество комплитов и ...все )
либо подписывайте на комплит и внутри GameImage и в главном классе. в последнем просто для подсчета.
да, не забывайте отписываться от событий.
ваша конструкция e.target.content.bitmapData.clone() плодит дубль, но в то же время оригинал со всем своим сарафаном будет висеть в памяти.

e.target.content.bitmapData.clone() клон делать низя , как я понял ? ...
редиспатчите его можно поподробней это как .. .?
__________________
Ищу человечка(ов) для участия в совместных проектах
vkontakte.ru я тут

Старый 21.02.2011, 14:03
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 10  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
примерно так:

в главном классе
Код AS3:
var image:GameImage = new GameImage(e.target.loader,somePosition);
image.addEventListener(Event.COMPLETE,checkConpleteCount);
...
private function checkConpleteCount(e.Event):void{
//do smt;
}
в классе GameImage
Код AS3:
public function GameImage(loader:Loader,position:???):void{
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
}
...
private function onComplete(e:Event):void{
this.dispatchEvent(e);
}
Добавлено через 1 минуту
Цитата:
e.target.content.bitmapData.clone() клон делать низя , как я понял ? ...
почему нельзя, просто грохайте сорс, если он вам не нужен больше.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Создать новую тему Ответ Часовой пояс GMT +4, время: 05:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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