![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2014
Сообщений: 57
|
Увидел как друг пишет код для клика по кнопочкам -
он вешает EventListener на Stage, а потом слушает каждый клик, проверяя hitTestPoint-ом совпали ли координаты клика с определенным клипом на сцене, если да - то вызывает код соответствующей кнопки. Я очень долго смеялся, т.к. для меня это чистая наркоманщина - я вешаю EventListener-ы на сами клипы ( кнопки), ну и соответственно по клику вызываю нужную функцию для каждой кнопки. Друг спорит и говорит, что его метод короче по кол-ву строк кода и удобнее. Я считаю, что это просто не логично. Одним из контраргументов: если поверх такой кнопки отрисовать другой мувиклип или спрайт и произвести клик, то при совпадающих координатах hitTestPoint вернет true и код кнопки инициализируется, хотя это будет не нужно. Друг в ответ сказал, что можно добавить код, который будет следить за тем, перекрывается ли кнопка другими компонентами ( что уже совсем костыль на мой взгляд). Рассудите, пожалуйста. ))) Кто прав, и если прав я, то как донести суть. )) |
|
|||||
|
Banned
[+1 30.08.14]
[+1 26.02.14] Регистрация: Apr 2012
Сообщений: 162
|
Сделайте ему одну видимую кнопку на сцене и 100000000 за пределами сцены.
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
|
Регистрация: Jan 2014
Сообщений: 57
|
лол нет, это не он. )) Но я не понял мысли, можно поподробнее ? )
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
|
JAVA стайл с одним обсервером-листенером?
HitTestPoint, как можно догадаться и без тестов, занимает больше процессорного времени, чем нативная реализация того же самого при определении мышиного события. Может быть и незначительно, но оптимизация складывается из мелочей. Если Вашему другу так хочется реализовать механику с одним листенером, то пусть хранит ссылки на ДО (DisplayObject) и проверяет currentTarget с этими ссылками. Так он хотя бы сможет иметь возможность отписывать ДО от событий. И да, как он сейчас отписывается от событий? Имеет тысячу флагов по одному на каждый ДО?
__________________
тут я |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
У меня схожий вопрос появился - все делают графику растровую, но Bitmap не ловит события мыши.
И в связи с этим вопрос - кто-нибудь пробовал использовать interactivePng для отказа от спрайтов и если да, то какие результаты? Или interactivePng это слишком грубо? |
|
|||||
|
2 PrincessRoma
Два объекта (спрайта) на сцене - один перекрывает другой. Верхний спрайт прозрачный и нижний (пусть это будет кнопка) поэтому видим пользователем. Пользователь кликает по кнопке, которую видит. Получит ли кнопка событие клика при вашем подходе?
__________________
interplanety |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Korchy а зачем так делать? Должен же быть порядок с дисплей листе.
|
|
|||||
|
Регистрация: Jan 2014
Сообщений: 57
|
Korchy - если имеете в виду случай, когда я кидаю EventListener-ы на каждый объект, то конечно нет. В этом и суть. И присоединяюсь к ответу Akopalipsis-а: должен быть порядок.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|