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

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

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

Регистрация: Jul 2007
Адрес: Украина Днепропетровск
Сообщений: 312
Записей в блоге: 1
По умолчанию Загрузка нескольких картинок?

Доброго времени суток!

Что не так? Загружаю из XML картинки, а грузится последняя из цикла...

Код:
count_avatar = 3;

for (i = 0; i < count_avatar; i++){

createEmptyMovieClip("clip", 0);
 
file = menu_xml.firstChild.childNodes[0].childNodes[i].childNodes[1].childNodes[0];

clip.maxWidth = 330;
clip.maxHeight = 300;
clip._x = random(100);
clip._y = random(100);

clip["image"+i].removeMovieClip();
clip.createEmptyMovieClip("image"+i, 0);
clip["image"+i].loadMovie(file);

}
__________________
Миксер впечатлений...
Самое интересное что я на творил!

Старый 23.06.2010, 20:05
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Хотя бы потому что
Код AS1/AS2:
createEmptyMovieClip("clip", 0);
- у вас в цикле постоянно на одном и том же 0-м уровне создается мувик clip, замещая уже созданный на предыдущем шаге.
Разумеется, все предыдущие загрузки идут прахом, они не успевают произойти - контейнер для загрузки уже исчез.

Возможно (без контекста не совсем все ясно, особенно с путями), так:
Код AS1/AS2:
count_avatar = 3;
var loader:MovieClipLoader = new MovieClipLoader();
 
for (i = 0; i < count_avatar; i++)
{
	clip =  createEmptyMovieClip('clip' + i, i); 
	file = menu_xml.firstChild.childNodes[0].childNodes[i].childNodes[1].childNodes[0];
	clip._x = random(100);
	clip._y = random(100);
	img = clip.createEmptyMovieClip('image', 0);
	loader.loadClip(img, file);
}


Последний раз редактировалось mooncar; 23.06.2010 в 20:23.
Старый 25.06.2010, 17:56
forward вне форума Посмотреть профиль Отправить личное сообщение для forward Посетить домашнюю страницу forward Найти все сообщения от forward
  № 3  
Ответить с цитированием
forward
 
Аватар для forward

Регистрация: Jul 2007
Адрес: Украина Днепропетровск
Сообщений: 312
Записей в блоге: 1
Сделал вот так все работает:

Код AS1/AS2:
count_avatar = 3;
 
for (i = 0; i < count_avatar; i++)
{
	file = menu_xml.firstChild.childNodes[0].childNodes[i].childNodes[1].childNodes[0];
	//-----------------Грузим картинки---------------
	var mc:MovieClip = createEmptyMovieClip("image" + i, i);
	//-----------------Положение для картинок------
	mc._x = i * 200;
	mc._y = i * 200;
	mc._xscale = 70;
	mc._yscale = 70;
 
	//Грузим мувики
	mc.loadMovie(file);
 
	//-------------Делаем кнопку------------
 
	mc.onRelease = function()
	{
 
		trace("Нажатие");
 
	};
}
Только вот не могу понять почему функция onRelease не работает?
__________________
Миксер впечатлений...
Самое интересное что я на творил!

Старый 25.06.2010, 18:12
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 4  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
читайте в хелпе про класс MovieClipLoader и его обработчики onLoadInit и onLoadComplete.

Старый 25.06.2010, 18:59
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Прелюдия.... В моем предыдущем посте были перепутаны местами параметры в методе oadClip. Надо:
Код AS1/AS2:
loader.loadClip(file, img);
А вот решение вам:

Код AS1/AS2:
var count_avatar:Number = 3;
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
loader.addListener(listener);
 
listener.onLoadInit  = function (target_mc:MovieClip) 
{
	var cont:MovieClip = target_mc._parent;
	var i:Number = cont.num; //"вспоминаем" номер
	target_mc._x = i * 200;
	target_mc._y = i * 200;
	target_mc._xscale = 70;
	target_mc._yscale = 70;
	target_mc.onRelease = mcOnRelease;
};
 
 
for (i = 0; i < count_avatar; i++)
{
	file = menu_xml.firstChild.childNodes[0].childNodes[i].childNodes[1].childNodes[0];
	//контейнер верхнего уровня
	var cont:MovieClip = this.createEmptyMovieClip('cont' + i, i);
	cont.num = i; //"запоминаем" номер в контейнере верхнего уровня
	//Создаем вложенный мувик-контейнер нижнего уровня, куда и будем грузить картинку.
	//Это нужно, поскольку после загрузки содержимое контейнера стирается,
	// а ведь нужно запомнить номер мувика.
	var img:MovieClip = cont.createEmptyMovieClip('img', 0); 															
	loader.loadClip(file, img);
}
 
function mcOnRelease () 
{
	var cont:MovieClip = this._parent;
	var i:Number = cont.num; //опять "вспоминаем" номер
	trace('Нажали на мувик номер ' + i );
}
И забудьте совершенно про loadMovie, иначе так и будут вопросы - "почему то не работает, почему се не работает"

PS. Все должно заработать (единственное - я не моделировал ваш XML, пути к картинкам занес вручную).


Последний раз редактировалось mooncar; 25.06.2010 в 20:12.
Старый 06.07.2010, 14:46
forward вне форума Посмотреть профиль Отправить личное сообщение для forward Посетить домашнюю страницу forward Найти все сообщения от forward
  № 6  
Ответить с цитированием
forward
 
Аватар для forward

Регистрация: Jul 2007
Адрес: Украина Днепропетровск
Сообщений: 312
Записей в блоге: 1
Вот я сделал, как Вы писали выше, отдельно этот кусок с XML и картинками но все равно не работает...
Вложения
Тип файла: rar test.rar (182.8 Кб, 47 просмотров)
__________________
Миксер впечатлений...
Самое интересное что я на творил!

Старый 06.07.2010, 14:53
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Пересохраните для CS3.

Старый 06.07.2010, 15:06
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Собственно нашел пример, который я тогда сэмулировал для вашего случая. Только пути к картинкам просто генерируются: 1.jpg, 2.jpg и тд., а не берутся из xml-файла. Посмотрите, все в порядке, все работает.
Может быть у вас проблемы с разбором XML? Потрейсите...
Вложения
Тип файла: rar loadPictrures.rar (62.0 Кб, 76 просмотров)


Последний раз редактировалось mooncar; 06.07.2010 в 15:09.
Старый 09.07.2010, 00:17
Бармалейкин вне форума Посмотреть профиль Отправить личное сообщение для Бармалейкин Найти все сообщения от Бармалейкин
  № 9  
Ответить с цитированием
Бармалейкин

Регистрация: Jun 2010
Сообщений: 18
Посоветуйте плиз, как лучше сделать? У меня похожая ситуация - гружу несколько картинок (их может быть от 10 до 1000). И потом мне нужно по 10 штук на странице их показывать. Т.е. два ряда по 5 картинок, в одном месте. Сразу все картинки для галереи не гружу, гружу только те что нужны для открытой страницы. А проблема вот в чём - сейчас я сделал 10 копий одного клипа (квадрат с рамочкой) куда и грузится картинка. Перелистывается страница - в те-же самые 10 квадратов грузятся новые 10 картинок. Листаешь назад - грузятся снова те что были ранее. Как-бы организовать загрузку так, чтобы не грузить картинки по нескольку раз а однажды загрузить их куда-то а потом просто копировать в тот мувик с рамкой? Что-то вроде библиотеки с attachMovie.

Подскажите хотя-бы в сторону чего копать?
Нужно куда-то загружать картинки чтобы потом можно было их копировать(?) в рамки на места.


Последний раз редактировалось Бармалейкин; 09.07.2010 в 01:59.
Старый 09.07.2010, 10:18
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1) Можно оставить все как есть - то есть пусть они подгружаются всякий раз заново.
Дело в том, что если проект в сети лежит, то браузер после первой загрузки их закеширует.
2) Если все же хотите, то можно, загружая картинки, сразу отрисовывать их в битмапный массив, и добавлять по мере надобности в мувик с рамочкой с помощью attachBitmap.

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

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

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


 


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


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