Форум Flasher.ru

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

silin 05.10.2008 13:49

Код:

package
{
        import flash.display.*;
        import flash.text.*;
       
        public class Main extends Sprite
        {
                public function Main():void
                {
                        var tf:TextField = new TextField();
                        tf.autoSize = TextFieldAutoSize.LEFT;
                        tf.text = "hello";
                        tf.setTextFormat(new TextFormat("_sans", 96));
                       
                        var distortFilter:Distort = new Distort(tf.width,tf.height);
                        tf.filters = [distortFilter.filter];
                       
                        addChild(tf);
                }
        }
}

Код:

package 
{
        import flash.display.*;
        import flash.filters.*;
       
        public class Distort
        {
                public var filter:DisplacementMapFilter = new DisplacementMapFilter();
                public function Distort(w:Number,h:Number)
                {
                        filter.componentY = BitmapDataChannel.RED;
                        filter.mode = DisplacementMapFilterMode.CLAMP;
                        filter.scaleY = 0.5 * h;
                        filter.mapBitmap = new BitmapData(w, h, false, 0x808080);
                        for (var i:int = 0; i < w; i++) {
                                var kx:Number = 1 - 4 * (i/w - 0.5) * (i/w - 0.5);
                                for (var j:int = 0; j < h; j++) {
                                        var ky:Number = j / h;
                                        var r:int = Math.floor(128 * kx * ky);
                                        filter.mapBitmap.setPixel(i, j, r << 16 );
                                }
                        }
                }
        }
}


Alex Lexcuk 06.10.2008 00:48

Вложений: 1
Если градиент рисовать во флеш, в ввиде рисунка, то он должен покрывать область с текстом, а мувик с текстом должен иметь границу, тоже нарисованную, что бы у фильтра было место дествия, если там только текст, то фильтр не сделает правильного искажения, нужно дополнительные полоски или квадрат для границы.
Теперь если искажать вверх
Код:

            var _scaleY:Number        = -60;
вниз
Код:

            var _scaleY:Number        = 60;

NewFolder 06.10.2008 02:01

Большое спасибо!


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

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