![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2011
Сообщений: 15
|
Доброго времени суток.
Ситуация такова: Есть написанный мною класс кнопки и класс страницы. В классе страницы циклом добавляется определенное количество кнопок, каждая из которых добавляется в массив. Также есть массив с строками текста. Необходимо, что бы при нажатии на кнопку, являющуюся элементом массива(например b[i]), отображалась строка, являющаяся элементом массива с соответствующим номером(например s[i]). Я реализовал это таким способом: В осн. функции класса вызывается функция createButtons(). В этой функции содержится цикл, который размещает кнопки на сцене и, уже за циклом, слушатели событий. b[1].addEventListener(MouseEvent.CLICK, function() { trace(a[1]) }); b[2].addEventListener(MouseEvent.CLICK, function() { trace(a[2]) }); Суть в том, что мне бы хотелось обобщить добавление слушателя, но у меня не получилось передавать аргументы функции function(). Как решить эту задачу? Последний раз редактировалось iNils; 06.01.2012 в 02:14. |
|
|||||
|
http://www.flasher.ru/forum/showthread.php?t=147849
там вариантов 5, самый оптимальный ИМХО для данной ситуации - сделать словарь "индекс_массива[кнопка]" indexByButton = new Dictionary(); ... for (i = .... { indexByButton[b[i]] = i; b[i].addEventListener(MouseEvent.CLICK, onButtonClick); .... } ... function onButtonClick(event:Event) { var i:int = indexByButton[event.currentTarget]; trace(a[i]); } Последний раз редактировалось expl; 06.01.2012 в 02:21. |
|
|||||
|
Регистрация: Dec 2011
Сообщений: 15
|
Спасибо большое. Попробую.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|