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

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

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

Регистрация: Sep 2009
Сообщений: 90
По умолчанию Как передать в функцию аргумент через listner?

Допустим есть у i есть значение, потом в другом месте оно меняется
i = 10;
pc_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, pcLoaded);
как передать функции pcLoader значение i в этом месте?

Старый 28.09.2009, 23:49
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
запомнить значение внутри поля класса и обратиться к нему из pcLoaded
__________________
тонкий тролль, осеянный благодатью

Старый 28.09.2009, 23:58
StepanR вне форума Посмотреть профиль Отправить личное сообщение для StepanR Найти все сообщения от StepanR
  № 3  
Ответить с цитированием
StepanR

Регистрация: Sep 2009
Сообщений: 90
а если вот так?
Код AS1/AS2:
for (i = 0; i < my_total; i++) {
				var thumb_url=my_images[i].@THUMB;
				var pc_loader = new Loader();
				thumbs[i]=pc_loader.load(new URLRequest(thumb_url));
				pc_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, pcLoaded);
			}

Старый 29.09.2009, 00:08
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 4  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Можно расширить Loader и добавить поле i.
Можно построить хеш, напрямую связывающий лоадеры и то, что вы им хотите сопоставить (достаётся в обработчике события через e.target.loader)

Ещё можно сделать через замыкание, но это - плохой вариант, ибо отписаться от события потом будет запарно.

ЗЫ: что этот код должен класть в thumbs[i]?
__________________
тонкий тролль, осеянный благодатью


Последний раз редактировалось Gaen; 29.09.2009 в 01:48.
Старый 29.09.2009, 00:22
StepanR вне форума Посмотреть профиль Отправить личное сообщение для StepanR Найти все сообщения от StepanR
  № 5  
Ответить с цитированием
StepanR

Регистрация: Sep 2009
Сообщений: 90
Спасибо! а можете поянснить, как работает e.target.loader, а то я что-т не понимаю, что такое target.loader и как из него переменную достать

Старый 29.09.2009, 00:24
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
private var _map:Dictionary = new Dictionary();
private function loadList():void 
{
	for (i = 0; i < my_total; i++) {
		var thumb_url = my_images[i].@THUMB;
		var pc_loader = new Loader();
		_map[pc_loader] = i;
		pc_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, pcLoaded);
		pc_loader.load(new URLRequest(thumb_url));
	}
}
 
private function pcLoaded(event:Event):void 
{
	event.target.removeEventListener(Event.COMPLETE, pcLoaded);
	var loader:Loader = (event.target as LoaderInfo).loader;
	var id:int = _map[loader];
	trace( "id : " + id );
}

Старый 29.09.2009, 12:44
StepanR вне форума Посмотреть профиль Отправить личное сообщение для StepanR Найти все сообщения от StepanR
  № 7  
Ответить с цитированием
StepanR

Регистрация: Sep 2009
Сообщений: 90
Спасибо, попробую осмыслить и применить!

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

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

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


 


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


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