PDA

Просмотр полной версии : фильтр прозрачности


Vlood
28.11.2008, 11:48
Вопрос такого плана:
есть обект, на него нужно наложить прозрачность средствами АС, но не сплошную, а градиентную. должно получится чтото типа -=||=- по интенсивности. Можно это сделать или нет?

artem_fs
28.11.2008, 12:12
нет, до этого флэш не дошел еще. я вот тоже мечтаю о появлении градиентных масок уже ооочень долго.

Волгоградец
28.11.2008, 12:14
Можно. Смотри метод beginGradientFill() у мувиклипа.

etc
28.11.2008, 12:53
нет, до этого флэш не дошел еще. я вот тоже мечтаю о появлении градиентных масок уже ооочень долго.
Вообще-то градиентные маски появились ещё в восьмерке.

artem_fs
28.11.2008, 13:34
Flash ignores bitmaps, gradients, transparency, colors, and line styles in a mask layer.
а програмно можно получается?

etc
28.11.2008, 13:38
Необязательно.

artem_fs
28.11.2008, 13:40
Необязательно flash ignores или необязательно програмно можно? непонимаю.

Wolsh
28.11.2008, 13:44
Да хоть как можно, хоть руками хоть программно.
Начиная с восьмерки. Градиентные маски.

Mur4ik
28.11.2008, 14:15
Один из возможных вариантов, не программный:
Над основным символом (которому требуется маска) размещаем другой символ-маску с градиентом из цвета в прозрачность. Этому градиентному символу выбераем режим наложения "alpha". Обворачиваем оба эти клипа (основной клип и символ с градиентом) в новый символ (выделяем оба и жмем F8) и для полученного в итоге клипа выбираем режим наложения "layer".

Если программно то знаю такой метод:
// mcMask клип-маска (нарисован с прозрачностью)
mcMask.cacheAsBitmap = true;
// mcClip основной (маскируемый) клип
mcClip.cacheAsBitmap = true;
// здаем для клипа mcClip маску клипом mcMask
mcClip.setMask(mcMask);

может есть и еще варианты...

Wolsh
28.11.2008, 15:11
Flash ignores bitmaps, gradients, transparency, colors, and line styles in a mask layer.
Просто не надо делать слой маской, надо использовать Blend Mode.

nOobCrafter
28.11.2008, 15:21
Ммм насколько помню делал так:
- картинку с градиентной прозрачностью, конвертил в муви клип, потом программно накладывал этот мувиклип на обьект как маску и все ок, могу кинуть пример.
item_list.setMask(item_mask);
по моему получается несколько проще чем у тов. Mur4ik

Жень Шень
28.11.2008, 18:43
Привет!
Вариант Wolsh ну, очень простой!
Поэтому лучше один раз увидеть...
С blendModeIndex можно проэксперементировать в пределах 1-14
12 - это "erase"

Mur4ik
29.11.2008, 01:58
to nOobCrafter:
с картинкой может и прокатит (такой пример еще для Flash MX видел), но если маску рисовать вручную и не используя режимы наложения, то нужен cacheAsBitmap = true