Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Эффект knockout. как ? (http://www.flasher.ru/forum/showthread.php?t=138704)

Crenth 14.04.2010 16:02

Эффект knockout. как ?
 
Люди, третий день туплю над сабжем.

тут http://insideria.com/ в левом верхнем углу на красной пластинке вырезано слово insideria.

как сделать такой же эффект в АС3 ?

udaaff 14.04.2010 16:15

DropShadowFilter#inner

arkadattx 14.04.2010 16:16

Я вот только не понимаю при чем тут ас3. Гораздо проще нарисовать. Думаю там также и реализовано. А если нужно именно программно - то создаем текст, делаем его маской к созданному фону, можно применить еще парочку эффектов, типа тени.

orcpochta 14.04.2010 16:23

чтобы посмотреть пример добавьте следующий код в первый кадр нового фла-файла:

Код AS3:

var bmd:BitmapData = new BitmapData(200, 100, true, 0xFFFF0000);
var bmp:Bitmap = new Bitmap(bmd);
addChild(bmp);
 
 
var format:TextFormat = new TextFormat( );
format.size = 48;
format.bold = true;
 
var tf:TextField = new TextField( );
tf.defaultTextFormat = format;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = "Trololo";
 
bmd.draw(tf, null, null, BlendMode.ERASE);
 
bmp.filters = [new DropShadowFilter( )];


pashadoba 14.04.2010 16:42

Все просто. У ник картинка(красный фон) с вырезанным словом " Inside ". К ней DropShadowFilter.

- рисуешь квадрат, допустим, красного цвета.
- на нем пишешь любое слово(цветом отличающимся от фона).
- делаешь буквы векторными
- удаляешь буквы: получается фон с вырезанными буквами
- все это в мувик и DropShadowFilter к нему

udaaff 14.04.2010 16:44

Цитата:

Сообщение от pashadoba (Сообщение 900477)
Все просто. У ник картинка(красный фон) с вырезанным словом " Inside ". К ней DropShadowFilter.

- рисуешь квадрат, допустим, красного цвета.
- на нем пишешь любое слово(цветом отличающимся от фона).
- делаешь буквы векторными
- удаляешь буквы: получается фон с вырезанными буквами
- все это в мувик и DropShadowFilter к нему

Зачем что-то вырезать? Обычного текста с drop shadow inner достаточно. И дополнительные настройки можно еще сделать угла, качества и расстояния. И будет точно такой же эффект как в примере.

Crenth 14.04.2010 17:46

Цитата:

Сообщение от orcpochta (Сообщение 900471)
чтобы посмотреть пример добавьте следующий код в первый кадр нового фла-файла:


ОООООООООоооооооооо, великий и могучий orcpochta, спасибо!

Работает :)


А еще подскажите, как сделать, чтобы на на битмапе была градиентная заливка.
Я счаз заливаю сцену вот так:
graphics.beginGradientFill(GradientType.LINEAR, [WIN_1G_COLOR,WIN_2G_COLOR], [1, 1], [0, 255], matr, SpreadMethod.REFLECT)


Если делать как в вашем примере
var bmd:BitmapData = new BitmapData(200, 100, true, 0xFFFF0000);

то буковки получаеются на ровном зеленом прямоугольнике. А мне надо чтобы это была градиентная заливка

orcpochta 15.04.2010 00:09

Цитата:

Сообщение от Crenth (Сообщение 900499)
А еще подскажите, как сделать, чтобы на на битмапе была градиентная заливка.

я в этом не силен, но сходу я бы сделал так:

Код AS3:

//создадим спрайт в котором разместим взятую из справки градиентную заливку
var sprite:Sprite = new Sprite( );
 
var fillType:String = GradientType.LINEAR;
var colors:Array = [0xFF0000, 0x0000FF];
var alphas:Array = [1, 1];
var ratios:Array = [0x00, 0xFF];
var matr:Matrix = new Matrix();
matr.createGradientBox(200, 100, 0, 0, 0);
var spreadMethod:String = SpreadMethod.PAD;
sprite.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);       
sprite.graphics.drawRect(0,0,200,100);
 
var bmd:BitmapData = new BitmapData(200, 100, true, 0xFFFF0000);
var bmp:Bitmap = new Bitmap(bmd);
addChild(bmp);
 
//здесь отрисовываем наш спрайт с заливкой в битмэпдату
bmd.draw(sprite);
 
var format:TextFormat = new TextFormat( );
format.size = 48;
format.bold = true;
 
var tf:TextField = new TextField( );
tf.defaultTextFormat = format;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = "Trololo";
 
bmd.draw(tf, null, null, BlendMode.ERASE);
 
bmp.filters = [new DropShadowFilter( )];


Crenth 15.04.2010 06:11

спасибо за помощь!


Часовой пояс GMT +4, время: 12:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.