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

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

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

Регистрация: Jul 2010
Сообщений: 99
По умолчанию Как сделать так, чтобы при загрузке картинок, они не перезаписывались?

Как сделать так, чтобы при загрузке картинок, они не перезаписывались?

Загружаю несколько картинок, но каждая последующая
картинка перезаписывает предыдущую картинку.
И получается, что видна только та картинка, которая была загружена последней.

Код AS3:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadAva);
var mc:MovieClip = new MovieClip();
var mc_array:Array = new Array;
var dispObj_array:Array = new Array;
addChild(mc);
 
loader.load(new URLRequest(image_url_1));
loader.load(new URLRequest(image_url_2));
 
function onLoadAva(e:Event) : void 
			{
				var loaderInfo:LoaderInfo = e.target as LoaderInfo;
				//var dispObj:DisplayObject = loaderInfo.content;
				var len_d:Number = dispObj_array.push(DisplayObject(loaderInfo.content));
				dispObj_array[len_d-1].width = 100;
				dispObj_array[len_d-1].height = 100;
				//dispObj.height = 100;
				//mc.addChild(dispObj);
				//var tmp_mc:MovieClip = new MovieClip();
				var len:Number = mc_array.push(new MovieClip());
				mc_array[len-1].addEventListener(MouseEvent.CLICK, function (e:Event):void {e.target.x+=50;});
				mc_array[len-1].addChild(dispObj_array[len_d-1]); 
				mc_array[len-1].y = 10+(Math.random()*50);
				addChild(mc_array[len-1]);
			}
После выполнения кода
Код AS3:
loader.load(new URLRequest(image_url_1));
loader.load(new URLRequest(image_url_2));
Видна только вторая картинка.

Если оставить только одну строчку загрузки картинки
loader.load(new URLRequest(image_url_1)); или loader.load(new URLRequest(image_url_2));
то соответственно загрузится только одна картинка.
Никак не получается сделать так, чтобы грузились две.
Видно последующая картинка затирает предыдущую картинку.

С кроссдоменником всё в порядке.
Security.allowDomain и Security.allowInsecureDomain настроены.

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

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Один Loader — одна картинка.
ИТОГО: сделай, например, loader1 и loader2 и обрабатывай COMPLETE обоих в своем onLoadAva.
__________________
Поймай яблоко 2!

Старый 10.07.2010, 16:37
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 3  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Один Loader — одна картинка.
Ну зачем же так категорично, а если нужно 250 картинок?

Грузите по очереди. Загрузили первую картинку, дождались Event.COMPLETE, после можно грузить следующую и т.д.
__________________
trace("Остановите Землю, я сойду!!!");

Старый 10.07.2010, 16:40
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 4  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от Mur4ik Посмотреть сообщение
Ну зачем же так категорично, а если нужно 250 картинок?
250 да. а в данном примере удобней два лоадера.
__________________
Поймай яблоко 2!

Старый 10.07.2010, 17:53
ins_nsk вне форума Посмотреть профиль Отправить личное сообщение для ins_nsk Найти все сообщения от ins_nsk
  № 5  
Ответить с цитированием
ins_nsk

Регистрация: Jul 2007
Сообщений: 30
Замечено: загрузка нескольких изображений параллельно происходит быстрее, нежели последовательно.

Старый 10.07.2010, 18:23
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
http://www.flasher.ru/forum/blog.php?b=207
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jul 2010
Сообщений: 99
Я в цикле гружу. Это я для примера сделал две картинки.
На самом деле картинки грузятся с flickr, в нём уж точно будет не две картинки, а больше.
Код AS3:
for (var i:Number = 0; i <= e.data.photos.photos.length-1; i++)
				{
				//var i:Number=0;
				var server:String =  e.data.photos.photos[i].server;
				var id:String =  e.data.photos.photos[i].id;
				var secret:String = e.data.photos.photos[i].secret;
				var image_url:String = "http://static.flickr.com/"+server+"/"+id+"_"+secret+".jpg";
				tf.text += String(i)+"_";
				loader.load(new URLRequest(image_url));
				//if (i==1) {break;}
				};
Добавлено через 8 минут
Цитата:
Сообщение от iNils Посмотреть сообщение
Спасибо, помогло.

Не работает
Код AS3:
loader.load(new URLRequest(image_url));
Работает
Код AS3:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadAva);
loader.load(new URLRequest(image_url));
Создаю каждый раз новый loader и работает. Грузит все картинки и отображает тоже все картинки.

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

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

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


 


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


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