![]() |
Реализация для битмап hitArea + маска
Добрый вечер.
Возникла такая задача: Есть исходная битмапа - некая внешняя PNG картинка c альфа каналом. Нужно как-то задать ей кастомную область реагирования на события мыши вне зависимости от параметров исходной битмапы. Возникла идея сделать для этой картинки что то наподобие маски - ее дубликат состоящий из двух цветов. Один цвет - активная область картинки для событий мыши, второй цвет - неактивная. В итоге загружаем картинку + эту двухцветную маску, и нужно как-то исходной картинке назначить областью реагирования нашу двухцветную маску с учетом цвета пикселов. Типа как hitArea для Sprite, но весь контент должен быть внешним, из битмап. Если неактивную область маски сделать прозрачной, то можно заюзать hitTest в BitmapData, но для этого маска должна лежать на сцене и быть видимой. Вобщем что-то тупик какой-то. Может можно все сделать проще? Подскажите пожалуйста. |
Из тонны, текста я понял, что нужно сделать hitTest для подгружаемой png? Щелкнул мышью по картинке, попал в прозрачность = false, попал в рисунок = true. (просто хочу прояснить картину). Если все так, то можно использовать getPixel
|
Цитата:
И да, getPixel32 быстрее будет, чем hitTest. |
Цитата:
Нужен именно чтобы кастомный hitTest был, вне зависимости от альфы исходной картинки. Т.е. исходная может быть в каком-то месте прозрачна, но там она должна быть активна. Цитата:
Да, вот тут тоже подумали с товарищем... Помещаем исходную картинку на сцену, отлавливаем в ней событие мыши, снимаем Point с нужными координатами и проецируем данную точку на битмапу-маску. А там уже с помощью getPixel(32) делаем проверку на то, куда мы попали. Нормальный способ же? Ничего вроде сильно страшного не делаем... |
Так и не понял, при чем тут вообще битмап. Есть картинка, а есть "кнопка" НАД картинкой. На кнопке нарисовали все что надо с нулевой альфой и ловите клики с нее, а не с картинки.
Добавлено через 4 минуты А, понял. "Маска" у вас не может быть векторной, загружается вместе с картинкой.. тогда конечно, взяли координаты клика и сравнили с пикселем "маски" (я бы сказал "карты") И незачем 32бита, просто черный/белый двухцветный гиф, весит копейки. |
Да, так и сделаю. Всем спасибо.
|
| Часовой пояс GMT +4, время: 03:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.