![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Поведение таково:
1. Чайлдим на Stage Bitmap. 2. Чайлдим на Stage Sprite. 3. Назначаем Listener на Stage. В приходящем e:Event если сравнить e.target is Stage, для Bitmap будет true, для Sprite false. Отчего проблема: раз битмап стал с какого-то перепоя стэйджем, то и координаты битмапа, какие бы они не были до этого будут равны 0,0 - т.е. координаты Stage. Со спрайтом проблем нет, он то остался собой и его заданные координаты определяются верно. И так со всем похоже куда не причайлдишь битмап - он становится частью контейнера, куда его причайлидили, и в итоге невозможно определить координаты битмапа. Последний раз редактировалось SeaQuest; 01.12.2009 в 16:09. Причина: ошибка была |
|
|||||
|
Какой листенер назначали?
И с какого перепуга у вас ( (экземпляр Event) is Stage)==true? Чето вы напутали. |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Ой, ошибся, исправил на e.target. И вот этот экземпляр как раз таки is Stage = true. То же самое проделал, но в качестве подложки был пустой Sprite. В итоге по клику на битмапу она становилась is Sprite = true
Листенер stage.addEventListener(MouseEvent.CLICK, clicks_handler); |
|
|||||
|
Так битмапа и не генерит событие клика
А с координатами, скорее всего у вас косяк... |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Почему не генерит? Еще как генерит. С координатами все Ок, спрайты и мувики дают верные координаты. Проверьте и убедитесь сами.
|
|
|||||
|
Вы в хелпе битмапу гляньте. Она не генерит событие клика и потому target==Stage
Последний раз редактировалось kackbip; 01.12.2009 в 16:49. |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Чиорт, действительно. Спасибо. А казалось что все нормально, так как моя задача была выяснить прозрачность пикселя, которая прекрасно выяснялась через draw и getPixel32. Но все же если причайлдить эту битмапу в спрайт контейнер, то по клику на область битмапы событие будет создаваться, только как будто это событие создал спрайт. Получается запутанно. А как тогда определить координаты битмапов, если их там несколько и простым getChildAt не отделаешься, т.к. не знаешь индекс нужной битмапы?
|
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
getObjectsUnderPoint(). В параллельном проекте пришлось отказаться от него т.к. адоубы не решили глюк с этим методом при скейленых объектах(официально признанный глюк). Сам не хочу, т.к. не ровен час придется воспользоваться скейлом и понесется.
Добавлено через 56 секунд Пока что выход оборачивать все в Sprite контейнеры. Через одно место, конечно. |
|
|||||
|
.
|
А Вам никто и не обещал, что Bitmap будет отвечать именно Вашим требованиям. Потому рассуждения об "одних местах" упираются только в Ваш опыт разработки.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|