|
|
|||||
Регистрация: Jun 2008
Сообщений: 283
|
Тень для полупрозрачного объекта
Приветствую всех.
Столкнулся с такой проблемой: Программно создается объект mc (Sprite), у которого имеется полупрозрачный фон. Для всего объекта применяю фильтр тени В результате, из-за полу прозрачности объектов входящих в состав mc, получается не тот результат. В добавок, объект имеет сложную форму и решить проблему путём создания прямоугольника с размерами исходного mc и уже на него наложить тень не получиться. Пытаюсь найти решение путём создания дубликата исходного mc:
Подскажите пожалуйста решение данного вопроса. Если он имеется конечно же. Спасибо. Последний раз редактировалось Evgan; 21.05.2012 в 22:15. |
|
|||||
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
|
Попробуйте многократно отрисовывать полупрозрачный клип, таким образом степень прозрачности будет уменьшаться. В цикле от 0 до 20 прогоните bmd.draw(sprite).
Кстати шокирует, как и оформление (!) php-кодом.
__________________
hauts.ru Последний раз редактировалось Hauts; 21.05.2012 в 20:06. |
|
|||||
Регистрация: Jun 2008
Сообщений: 283
|
Цитата:
Добавлено через 3 минуты Спасибо большое, нужная информация. Теперь по средством копирования клипа через Bitmap всё работает как надо. Но всё же он "тяжеловат"+( |
|
|||||
С красноватым оттенком думаю должен получиться... Если красный изначально был. Хотя может и ошибаюсь.
|
|
|||||
как вариант colorTransform копии спрайта, без отрисовки в битмап
public function duplication_sprite(sprite:Sprite):Sprite { var spriteClass:Class = Object(sprite).constructor; var res:Sprite = new spriteClass() as Sprite; res.transform.colorTransform = new ColorTransform(0, 0, 0, 1, 0, 0, 0, 255); return res; } упс, сори: фильтры не работают с таким (под colorTransform ) спрайтом Добавлено через 13 минут но выкрутится можно: обернуть трансформированный спрайт еще одним, например public function duplication_sprite(sprite:Sprite):Sprite { var spriteClass:Class = Object(sprite).constructor; var res:Sprite = new spriteClass() as Sprite; res.transform.colorTransform = new ColorTransform(0, 0, 0, 1, 0, 0, 0, 255); var res1:Sprite = new Sprite(); res1.addChild(res); return res1; } |
|
|||||
Регистрация: Jun 2008
Сообщений: 283
|
Цитата:
public function renderSpriteFill(_w:int = 15,_h:int=15,_r:int=0,_color:Number=0x00000): Sprite { var _temp :Sprite = new Sprite(); _temp.graphics.clear(); _temp.graphics.beginFill(_color, 1); _temp.graphics.drawRoundRect(0, 0, _w, _h, _r); return _temp; } Может я что то не учитываю?.. Последний раз редактировалось Evgan; 22.05.2012 в 11:41. |
|
|||||
Регистрация: Jun 2008
Сообщений: 283
|
Понял. Спасибо за информацию.
|
Часовой пояс GMT +4, время: 02:57. |
|
« Предыдущая тема | Следующая тема » |
|
|