forked from: BOLD

by tsu_droid
♥0 | Line 55 | Modified 2013-05-04 11:26:48 | MIT License
play

ActionScript3 source code

/**
 * Copyright tsu_droid ( http://wonderfl.net/user/tsu_droid )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/1NqF
 */

// forked from spanvega's BOLD
package
{
    import flash.text.*;
    import flash.geom.*;
    import flash.events.*;
    import flash.display.*;

    [ SWF (width = '465', height = '465', backgroundColor = '0xFFFFFF', frameRate = '50')]

    public class BOLD extends Sprite
    {
        private var o : Array = [new Point (), new Point ()];
        private var n : uint = Math.random () * 0xFFFFFF;
        private var b : BitmapData, s : BitmapData;
        private var a : Array = [];
        private var t : TextField;

        public function BOLD ()
        {
            Wonderfl.disable_capture ();

            t = new TextField ();
            t.defaultTextFormat = new TextFormat ('null', 100, 0x0, true);
            t.autoSize = 'left';
            t.text = '日本語テスト';

            s = new BitmapData (t.width, t.height, false, 0xFFFFFF);
            s.draw (t);

            with (addChild (new Bitmap (b = s.clone ())))
            { x = 465 - b.width >> 1; y = 465 - b.height >> 1; }

            const MAX : Number = 255;    
            var m : Matrix = new Matrix ();
            m.createGradientBox (MAX, 1);

            var g : Sprite = new Sprite ();
            g.graphics.beginGradientFill
            (
                GradientType.LINEAR,
                [0x000000, 0x400000, 0x800000, 0xBE0000, 0xDFDFDF, 0xDFDFDF],
                [1, 1, 1, 1, 1, 1],
                [0, MAX * 0.325, MAX * 0.5, MAX * 0.53125, MAX * 0.5625, MAX],
                m
            );
            g.graphics.drawRect (0, 0, MAX, 1);

            var gradient : BitmapData = new BitmapData (MAX, 1, false);
            gradient.draw (g);
 
            for (var i : int = 0; i < MAX; i++)
            {
                a [i] = gradient.getPixel (i, 0);
            }

            frame (); stage.addEventListener (Event.ENTER_FRAME, frame);
        }

        private function frame (e : Event = null) : void 
        {
            o[1].y = (o[0].y += 0.8);

            b.perlinNoise (b.width / 8, b.height / 2, 3, n, false, true, 1, true, o);
            b.paletteMap (b, b.rect, b.rect.topLeft, a, [], []);
            b.draw (s, null, null, 'add');
        }
    }
}