|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2012
Сообщений: 97
|
создание произвольного количества кнопок и прослушивание их событий
Вопрос хоть и ламерский, но ответа найти не могу((
вообщем есть у меня много элементов, типа пользователи и у каждого есть своя кнопочка, как можно все эти кнопки вывести на показ и отслеживать события происходящие при их нажатии вот что я придумал есть массив с пользователями, ники, ip, прочая фигня туда же добавляем кнопки для каждого свои далее перебераем нужные мам элементы и рисуем кнопки на экране, дальше промблемма(( как сделать так что бы можно было каждой кнопке своего слушателя назначить , как динамически создать функции с разными именами. |
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Сделай одного слушателя и кастомное событие, куда будет передеваться идентификатор конкретного пользователя либо другая нужная информация.
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
kelod, зачем Вам разные обработчики? Вы собираетесь делать разные действия с пользователями?
Stitch512, зачем создавать кастомное событие, если ссылка на кнопку есть в обычном MouseEvent? Кастомный MouseEvent Вы не создадите, а если надо просто передать айдишник кнoпки/юзера, то есть дефолтный DataEvent.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Иногда удобнее в событие передать необходимые данные для обработки, чем получать их потом на строковому идентификатору, но если необходимости в этом нет то да, можно и дефолтным событием. Вообще зависит от задачи, но я абстрактным событиям типа MouseEvent предпочитаю пользовательские, меньше телодвижений для получения нужной информации в обработчике.
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
"Абстрактные события"? Не, не слышал. Событие без реализации, без экземпляра?
"событиям типа MouseEvent предпочитаю пользовательские" – боюсь только, InteractiveObject не разделяет Ваших вкусов. Расскажите, как Вы ловите клик по объекту, не подписываясь на MouseEvent?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2012
Сообщений: 97
|
я всё равно сто то не пойму, если сделать 1 событие на несколько кнопок, как я узнаю которая нажата? не могли бы Вы привести примерчик кода, хотя бы приблизительный
|
|
|||||
Регистрация: May 2010
Сообщений: 543
|
узнать, какая нажата кнопка, можно с помощью свойства currentTarget объекта MouseEvent.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
|
|||||
Регистрация: Jan 2012
Сообщений: 97
|
кажется разобрался, присвоил кнопкам имена и теперь можно их через currentTarget.name различать)
|
|
|||||
Регистрация: Jan 2012
Сообщений: 22
|
совершенно верно.
А вот так можно к любому объекту обратиться по имени private function getObjectByName(n:String,par:DisplayObjectContainer):DisplayObject{ for (var i:int = 0;i<par.numChildren;i++) { if (par.getChildAt(i).name==n) {return par.getChildAt(i);} else {if (par.getChildAt(i) is DisplayObjectContainer) { var t:DisplayObject = getObjectByName(n,DisplayObjectContainer(par.getChildAt(i))); if (t!=null) {return t}}} } return null; } Последний раз редактировалось booksmaster; 24.01.2012 в 12:28. |
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Я и не говорил что не подписываться. Кнопку и все необходимые данные помещаем в класс-контейнер, в нем подписываемся на MouseEvent по нему шлем события к примеру ButtonClick с нужными данными, по сути MouseEvent получается инкапсулировано и извне видно только событие данного контейнера. Если потом внутренняя логика поменяется - вместо кнопки какая то анимация, либо пользовательская кнопка у которой другая логика работы, или что угодно, то это эти изменения будут только внутрение.
|
Часовой пояс GMT +4, время: 20:25. |
|
« Предыдущая тема | Следующая тема » |
|
|