![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: May 2010
Сообщений: 5
|
Всем привет,
хотелось бы спросить у общественности по сабжевому вопросу. Исходная композиция такова: 1) Два объекта Sprite, один частично перекрывается вторым 2) Создаю объект типа BitmapData, картинка с прозрачностью 3) Используя beginBitmapFill рисую картинку на первом и на втором спрайте Вопрос: каким магическим образом можно сделать так, что бы прозрачность картинки на втором спрайте работала и из под второго спрайта было бы видно первый? Спасибо! |
|
|||||
|
Регистрация: May 2010
Сообщений: 5
|
Оно работает до тех пор, пока я не пользуюсь beginBitmapFill... Флэш заливает картинку игнорируя альфаканал, забивает белый фон.
Добавлено через 2 минуты Если посмотреть цвет точки с координатами (0, 0) типа то возвращается число 0xFFFFFFFF, т.е. прозрачность на лицо. |
|
|||||
|
Регистрация: May 2010
Сообщений: 5
|
Извините, господа, это был me-bug... В одном из 5-ти мест при создании BitmapData я не указал флаг transparent = true и цвет 0xFFFFFF... Странно, эти данные стоят по умолчанию, однако если их не указать явно, то картинка получается непрозрачной...
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Значит у Вас БитмапДата получается без прозрачности.
Как Вы ее создаете? Добавлено через 26 минут Вообщето 0xFFFFFFFF - это налицо непрозрачность.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 16
|
У меня вопрос по этой же теме, по-этому разворошу её.
Есть спрайт tmp. рисую в нем в Graphics фигуру. отображаю. - Клик мыши по незарисованной области tmp- норм проходит на нижележащем объекте. Но если я копирую содержимое спрайта tmp в спрайт res: то клик мыши по незакрашенной области res не доходит до нижележащих объектов, а таргетом является res Последний раз редактировалось mooncar; 13.02.2013 в 10:24. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
И что непонятно? Во втором спрайте у Вас рисуется прямоугольник. У него нет никаких "незакрашенных" областей. Если где-то изображение прозрачно, то это тоже самое, как закрасить прямоугольник цветом с непрозрачностью ноль — вроде бы ничего нет, а на мышь реагирует)))
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 16
|
Ага. Еще пошарил и нашел тему с вашим участием http://www.flasher.ru/forum/showthre...eginBitmapFill.
Дошло, что прозрачность "работает" только в векторных объектах, коими graphics. и является. А при выполнении beginBitmapFill все это дело "растеризуется". В общем решил проблему, использовав ф-ю проверки альфаканала кликаемого пикселя, //----------------------------------------------------------------------------------------- public static function mouseHits(target:DisplayObject):Boolean{ if (target == null || target.stage == null){ return false; } if (target.hitTestPoint(target.stage.mouseX, target.stage.mouseY)){ var aMatrix:Matrix = new Matrix(); aMatrix.translate(-target.mouseX, -target.mouseY); var bd:BitmapData= new BitmapData(1, 1, true, 0x00000000); bd.draw(target, aMatrix); var alpha:uint = ((bd.getPixel32(0, 0) >> 24) & 0xFF); bd.dispose(); return alpha > 0x0F; } return false; } |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:40. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|