![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2008
Сообщений: 71
|
Здравствуйте. Почемуто в конструкторе не срабатывает задание слушателя.
for(var i:Number = 0; i < all.wines.numChildren; i++) { all.wines.getChildAt(i).name.addEventListener(MouseEvent.MOUSE_DOWN, open_big_wine); trace(all.wines.getChildAt(i).name); } all.wines.wine_1.addEventListener(MouseEvent.CLICK, open_big_wine); all.wines.wine_2.addEventListener(MouseEvent.CLICK, open_big_wine); all.wines.wine_3.addEventListener(MouseEvent.CLICK, open_big_wine); В чем проблема, подскажите пожалуйста. |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
а зачем вы имени прописываете слушатель?
![]()
__________________
low + |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Только что-то мне не кажется, что это решение красивое.
![]() UPD: опередили |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 71
|
Спасибо. Помогло.
mikhailk Подскажите пожалуйста красивое решение новичку. Буду благодарен. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Честно говоря, я слабо себе представляю, что именно происходит в коде.
Например, откуда взялись потомки у all.wines. Я подозреваю, что это картотека вин, она как формируется, динамически? Если динамически - разумно слушателей (на мой взгляд) приписывать по мере создания объектов. Тогда этот цикл вообще не нужен. Кстати, мелочь конечно, но лучше бы i сделать int. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 71
|
mikhailk Спасибо за совет.
В моем случае это мувики со сцены прямо. Спасибо за помощь еще раз. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
разумно вешать слушатель вообще только один к all.wines.
А не перебирать всех его детей и им приписывать один и тот же слушатель. Потом же еще отписываться придется. Вот гемора то себе создаете. Нерационально называется. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
ну, где вешать и что слушать - кому как удобнее
Я бы в общем виде делал так: 1. Завел бы класс Bottle, который знает все о бутылке 2. Слушатель на мышь вешал бы внутри этого класса и там же от него при необходимости отписывался (если предполагается, что объекты этого класса убираются со сцены) 3. Внутри самого класса Bottle при срабатывании слушателя мыша диспатчил бы наверх событие Bottle.SELECTED, в котором передавал бы всю информацию о бутылке, которую необходимо показывать, это событие бы отлавливал уже на уровне контейнера бутылок, напр. BottleContainer. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Не знаю, мне мой вариант больше нравится
Если отлавливать в контейнере бутылок просто клики мыша по бутылкам, все, что будет - это имя таргетной бутылки, которое еще надо обработать и достать данные по бутылке. Тут на форуме полно вопросов "как мне передать параметр в слушатель?" - это следствие как раз этого подхода. В моем варианте - по клику мыша по бутылке в контейнер приходит сразу событие с данными. Тихо и красиво. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:06. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|