![]() |
Не срабатывает цикл.
Здравствуйте. Почемуто в конструкторе не срабатывает задание слушателя.
Код AS3:
Код AS1/AS2:
В чем проблема, подскажите пожалуйста. |
а зачем вы имени прописываете слушатель? :)
|
Код:
all.wines.getChildAt(i).addEventListener(MouseEvent.MOUSE_DOWN, open_big_wine);UPD: опередили |
Спасибо. Помогло.
mikhailk Подскажите пожалуйста красивое решение новичку. Буду благодарен. |
Честно говоря, я слабо себе представляю, что именно происходит в коде.
Например, откуда взялись потомки у all.wines. Я подозреваю, что это картотека вин, она как формируется, динамически? Если динамически - разумно слушателей (на мой взгляд) приписывать по мере создания объектов. Тогда этот цикл вообще не нужен. Кстати, мелочь конечно, но лучше бы i сделать int. |
mikhailk Спасибо за совет.
В моем случае это мувики со сцены прямо. Спасибо за помощь еще раз. |
разумно вешать слушатель вообще только один к all.wines.
А не перебирать всех его детей и им приписывать один и тот же слушатель. Потом же еще отписываться придется. Вот гемора то себе создаете. Нерационально называется. |
ну, где вешать и что слушать - кому как удобнее
Я бы в общем виде делал так: 1. Завел бы класс Bottle, который знает все о бутылке 2. Слушатель на мышь вешал бы внутри этого класса и там же от него при необходимости отписывался (если предполагается, что объекты этого класса убираются со сцены) 3. Внутри самого класса Bottle при срабатывании слушателя мыша диспатчил бы наверх событие Bottle.SELECTED, в котором передавал бы всю информацию о бутылке, которую необходимо показывать, это событие бы отлавливал уже на уровне контейнера бутылок, напр. BottleContainer. |
Цитата:
|
Не знаю, мне мой вариант больше нравится
Если отлавливать в контейнере бутылок просто клики мыша по бутылкам, все, что будет - это имя таргетной бутылки, которое еще надо обработать и достать данные по бутылке. Тут на форуме полно вопросов "как мне передать параметр в слушатель?" - это следствие как раз этого подхода. В моем варианте - по клику мыша по бутылке в контейнер приходит сразу событие с данными. Тихо и красиво. |
| Часовой пояс GMT +4, время: 00:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.