MovieClip hitArea
Доброго времени суток!
Есть стандартный movieClip, хотелось бы определять куда кликнули в текущем кадре: в прозрачку или нет (по событию). Для image всё понятно. Подскажите как правильно это сделать? Перерыл пол инета, но пока не нашел способа. Виноват, не hitArea, а hitTest(point). |
В старлинге метод hitTest работает немного по-другому, нежели в стандартном флеш. Он не возвращает значение истина или ложь в зависимости от попадания точки на другой объект, а рекурсивно превращает глобальные координаты "детей" какого-либо дисплей объекта и возвращает ссылку на объект, с которым произошло столкновение или null если нет
Для пиксельной точности проверки столкновений вам нужно вместо movieClip.hitTest(Point) использовать BitmapData.hitTest Более подробно это обсуждается здесь: http://www.mikechambers.com/blog/200...ion-detection/ |
Есть ли возможность достучаться из movieClip до его bitmapData, не используя Атлас для создания нужной bitmapData для уже последующей проверки bitmapData.hitTest?
|
Нет, к сожалению после превращения Bitmap или BitmapData в Texture, обратное преобразование сделать невозможно..
На старлинговском форуме решали подобные проблемы, там предлагали переделать конструктор мувиклипа (читать - создать свой наследующий класс) чтобы он кушал Bitmap или BitmapData вместо Texture, а затем внутри конструктора преобразовывать эти данные в Texture и вызывать суперкласс. таким образом внутри класса остается сам объект BitmapData который можно использовать для проверки на столкновения |
Спасибо. Почему-то мне очень не хотелось прибегать к этому способу. Но раз другого более оптимального нет...
|
Этот способ сам Дэниел (автор фреймворка) предложил, как самый оптимальный :)
|
Часовой пояс GMT +4, время: 17:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.