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

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

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

Регистрация: Jun 2011
Сообщений: 127
По умолчанию определить какой обект генерировал событие

Проблема в следующем у меня есть вложенный на несколько уровней вглубь слайдер с авами пользователей.
Кроме авы я еще запихиваю в каждый из отдельных элементов сладера информации о каждом из пользователей.
Дату рождения, ссылку на страницу, имя и т.д. Надо при щелчке на слайдере получить эти данные и использовать в корне флешки.
Если использовать конструкцию:
Код AS3:
level1.level2.slider_element.addEventListener(MouseEvent.CLICK,doSomething);
function doSomething(e:MouseEvent)
{
var data:Array=e.currentTarget.userData; //дальше что-то с ними делаю    
}
То все работает, но это не удобно, так как на уровне level2 слайдер не всегда в кадре. И после выхода его из кадра снова приходится лезть туда из корня и вешать слушатели событий. И соответственно всякие проверки на вход выход из кадра.
Попробовал сделать через dispatchEvent.
Slider_element генерирует событие
Код AS3:
dispatchEvent(new Event("i_am_clicked"));
А в корне флешки поставил прослушиватель события.
Код AS3:
addEventListener("i_am_clicked",doSomething,true);
function doSomething(e:Event)
{
var data:Array=e.currentTarget.userData;
}
Но такой метод не работает. В чем ошибка? Помогите разобраться. И как надо сделать чтоб правильно было?

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Код AS3:
dispatchEvent(new Event("i_am_clicked", true));
И если я правильно понял вам нужен target, а не currentTarget.

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

Регистрация: Jun 2011
Сообщений: 127
Да, спасибо, Bgg вы правы оказались. А я то столько лишнего кода написал, чтоб из корня на несколько уровней вниз слушатели вешать и убирать.
Кстати до конца так и не понял разницу между target и currentTarget. В данном случае получается, target возвращает как раз элемент слайдера который мне и нужен. А currentTarget тогда на что указывает в этом конкретном примере?

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
currentTarget возвращает объект который подписывался на событие.
Код AS3:
obj.addEventListener(...
//obj = currentTarget

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

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

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


 


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


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