|
|
|||||
Регистрация: Apr 2010
Сообщений: 97
|
Обработчики циклом.
Здравствуйте как запустить много обработчиков на кнопки циклом? Есть магазин нужно обрабатывать кнопки делал так, но естественно не получилось, т к значение i меняется и естественно берется последнее значение.
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Можно подробнее?
|
|
|||||
Регистрация: Apr 2010
Сообщений: 97
|
Да делаю магазин, есть кнопки по нажатию на которые должно покупаться, вот хотелось бы обработать их разом как-то, а не для каждого отдельно создать обработчик.
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
А как у Вас логика построена? Много окон с картинкой, ценой и рядом кнопкой "в корзину"?
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Я бы вот как сделал... Создал контейнер миниокошка и для каждого описал бы json.
Потом бы при создании контейнера кидал бы в конструктор этот данные из этого json где они бы и сохранялись в свойство? что-то типа private var _data:Object; private var _textFieldOne:TextField = new TextField( ); private var _textFieldTwo:TextField = new TextField( ); private var _button:Button = new Button( ); public function Constructor( ) { super.addChild( _textFieldOne ); super.addChild( _textFieldTwo ); _button.addEventListener( MouseEvent.CLICK, button_clickHandler ); super.addChild( _button ); } public function setData( data:Object ):void { _data = data; this.install( _data ); } private function install( data:Object ):void { super.addChild( data.img ); _textFieldOne.text = data.textOne; _textFieldTwo.text = data.textTwo; } private function button_clickHandler( event:MouseEvent ):void { super.dispatchEvent( new CustomEvent( _data ) ); } подписываете на событие CustomEvent где изымаете data и складываете в массив корзина. И если покупатель потом зайдет и захочет посмотреть сколько у него товаров и какие, то добавляете эту data из массива и показываете ему. Добавлено через 3 минуты Забыл самое главное - события должны быть "всплывающими"! |
|
|||||
Регистрация: Apr 2010
Сообщений: 97
|
Спасибо, но это наверное пока сложновато для моего понимания, я с as 2 только перешел, еще не очень разбираюсь что да как. Есть ли способ именно по клипам обработчиков пустить разом много.
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
var i:int = buttons.length; while( i-- > 0 ){ buttons[i].addEventListener( MouseEvent.CLICK, buttons_clickHandler ); } private function buttons_clickHandler( event:MouseEvent ):void { trace( event.target ); // будет кнопка } Добавлено через 1 минуту Просто не совсем Вас понимаю.. |
|
|||||
Да, находите тот объект, который вызвал событие (как подсказал Gerbert) и вычисляйте его индекс в массиве:
|
|
|||||
Регистрация: Apr 2010
Сообщений: 97
|
Так этот код сделает обработчики с buttons[0] n к концу выполнения цикла i будет равна нулю, то и все buttons будут с указателем i=0 же?
но спасибо, попробую по вашим примерам сделать. Надеюсь сработает Последний раз редактировалось stepa323; 16.10.2014 в 00:36. |
Часовой пояс GMT +4, время: 21:45. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|