|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2008
Сообщений: 71
|
Как передать функции-слушателю, какой либо параметр?
Вот собственно и вопрос. Как передать функции-слушателю, какой либо параметр?
|
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
воспользуйтесь поиском по разделу
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
alexes, вместе с событием.
|
|
|||||
Регистрация: Jun 2009
Сообщений: 461
|
Как вариант, своего слушателя написать:
Класс слушателя: package { import flash.events.*; public class EventWithParam extends Event { private var SavedEventParam; public function EventWithParam(EWP_EventType:String,EWP_EventParam) { super(EWP_EventType,true,false); SavedEventParam=EWP_EventParam; } public function get EventParam() { return SavedEventParam; } } } package { import flash.display.*; import flash.events.*; public class Main extends Sprite { //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- public function Main():void { addEventListener("Event",func); var id:int=54; dispatchEvent(new EventWithParam("Event",id)); //Если надо передать несколько параметров я передаю массив или объект. var A:Array=[id,id+4,id+44]; dispatchEvent(new EventWithParam("Event",A)); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //Эта функция получает параметр. private function func(e:EventWithParam) { trace("Event param = ",e.EventParam); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- } } |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Tr1te, за подобный код, вообще говоря, руки отрывают по пояс.
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Я кстати всё чаще вижу темы с вопросом - как передать массив в слушатель и всякие реализации. Это похоже на моду )
Или тебя смущает отсутствия остальных параметров в событии, переопределенного клона, отсутствие констант под событий, отсутствие типизации, несоответствие конвенции и странно названный аксессор в событии? =D
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Дело даже не в самом подходе, больше в реализации оного. И то и другое — убого.
|
|
|||||
Регистрация: Jun 2009
Сообщений: 461
|
Покажите лучше вариант. Я с удовольствие поучусь. А если нет альтернатив, то буду писать так.
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
alexes,
я так понимаю, что этот топик является де-факто продолжением соседнего топика "Не срабатывает цикл.". Если хотите сделать правильно, сделайте, как я предложил (постинг с тремя пунктами в нижней части первой страницы). Все данные кладем внутрь объекта-бутылки, получаем потом событием. Если хотите сделать неправильно, но быстро, то можете передать индекс выбранной бутылки через имя объекта-бутылки. Т.е., при создании бутылки присвоить ей индекс в имени, а в слушателе его прочитать. bottleObj.name = i; // присвоили имя-индекс bottleObj.addEventListener(MouseEvent.MOUSE_DOWN,bottleSelected); private function bottleSelected(e:Event) : void { var iBottle:int = int(e.target.name); // прочитали индекс бутылки trace(iBottle); } Добавлено через 1 минуту Tr1te, package { import flash.events.Event; public class AppEvent extends Event { public function AppEvent(type:String, body:Object, bubbles:Boolean = false, cancelable:Boolean = false) { _body = body; super(type, bubbles, cancelable); } override public function clone():Event { return new AppEvent(type, body, bubbles, cancelable); } protected var _body:Object; public function get body():Object { return _body; } } } |
|
|||||
Регистрация: Jun 2009
Сообщений: 461
|
mikhailk, поясните пожалуйста.
Чем отличается? Параметры bubbles, cancelable задаются через конструктор, безусловно правильней - учту. Клон функция, ну это уже бонус. Можно дописывать, что угодно. Полагаю, что это не влияет на отрывание рук. А что еще может влиять на отрывание рук? |
Часовой пояс GMT +4, время: 10:53. |
|
« Предыдущая тема | Следующая тема » |
|
|