Forked from: knd's text in force map diff:29 forked from: text in force map BradSedito 2011 bradsedito forked:2favorite:1lines:113license : All rights reserved modified : 2011-06-27 05:36:34 Embed Tweet // BradSedito 2011 package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Point; import flash.geom.Rectangle; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.filters.BlurFilter; import flash.text.*; [SWF(backgroundColor="0x0", frameRate="90")] public class MyFirstForceMap extends Sprite { private const WH:uint = 465; // Force map private const fm: BitmapData = new BitmapData(WH, WH); private const VERO:Number = 1.0/150.0; private const RESI:Number = 1.0/275.0; private const BIAS:int = -128; private var ps:Vector.<Point>; private var vs:Vector.<Point>; private const N:uint = 10000; private const dat:BitmapData = new BitmapData(WH, WH, true, 0xff000000); private const bmp:Bitmap = new Bitmap(dat); private var vh:Boolean; private var ct: ColorTransform = new ColorTransform(1, 1, 1, 1, -7, -3, -2, 0); private function updateFM():void { var txt : TextField = new TextField; txt.autoSize = TextFieldAutoSize.LEFT; var tf: TextFormat = new TextFormat; tf.color = 0x8080f0; tf.bold = true; tf.size = 32; var mat :Matrix; var rnd: uint = 10 * Math.random(); if(vh){ fm.perlinNoise(WH>>2, WH>>2, 7, rnd, true, true, 7); ct = new ColorTransform(1, 1, 1, 1, -8, -6, -2, 0); txt.text = "BRAD\nSEDITO"; txt.setTextFormat(tf); mat = new Matrix(3,0,0,3, WH>>3, 0); fm.draw(txt, mat); } else{ fm.perlinNoise(100, 100, 2, rnd, true, true, 7); ct = new ColorTransform(1, 1, 1, 1, -2, -6, -8, 0); txt.text = "BRAD\nSEDITO"; txt.setTextFormat(tf); mat = new Matrix(3,0,0,3,0, WH>>3); fm.draw(txt, mat); } vh = !vh } public function MyFirstForceMap() { updateFM(); ps = new Vector.<Point>(); while (ps.length != N) { ps.push(new Point(WH*Math.random(), WH*Math.random())); } vs = new Vector.<Point>(); while (vs.length != N) { vs.push(new Point()); } addChild(bmp); var i:int; var c:int; var fr:Number; var fg:Number; var fb:Number; var resist:Number; var p:Point; var v:Point; const p0:Point = new Point; const blur:BlurFilter = new BlurFilter(4,4); addEventListener(Event.ENTER_FRAME, function(e:Event):void { dat.lock(); dat.colorTransform(dat.rect, ct); for (i = 0; i < N; i++) { p = ps[i]; v = vs[i]; c = fm.getPixel(p.x, p.y); fr = VERO * Number(int((c >>> 16) & 0xff) + BIAS); fg = VERO * Number(int((c >>> 8) & 0xff) + BIAS); fb = Number(~c & 0xff) * RESI; v.x = fb * (v.x + fr); v.y = fb * (v.y + fg); p.x += v.x; p.y += v.y; if (p.x > WH){ p.x -= WH; } else if( p.x < 0){ p.x += WH;} else if (p.y > WH) p.y -= WH; else if( p.y < 0) p.y += WH; if(dat.getPixel32(p.x,p.y)== 0xffffffff){ p.x = WH*Math.random() ; p.y = WH*Math.random() ; v.x = 0; v.y = 0; } else dat.setPixel32(p.x, p.y, 0xffffffff); } dat.applyFilter(dat, dat.rect, p0, blur); dat.unlock(); }); stage.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void { updateFM(); }); } } } Code Fullscreen Preview Fullscreen aobyrne setTextFormat Matrix bold BlurFilter TextFormat autoSize TextFieldAutoSize.LEFT text addEventListener size MouseEvent.CLICK MouseEvent.ENTER_FRAME TextField color MouseEvent push length Vector addChild Boolean sort new page view favorite forked pv266 forked from: forked from: text.. bradsedito forked:1 favorite:6lines:113 (diff:2) tag: particle text pv152 forked from: forked from: text.. tsu_droid forked:0 favorite:1lines:113 (diff:2)