// forked from rsakane's 砂絵 - Sandpainting package { import flash.display.Sprite; import flash.display.BitmapData; import flash.display.Bitmap; import flash.events.Event; import flash.geom.Matrix; import flash.geom.Point; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.filters.BevelFilter; [SWF(width="465", height="465", frameRate="30", backgroundColor="0xFFFFFFF")] public class Main extends Sprite { private var degree:int = 0; private var bitmap:Bitmap; private var bd:BitmapData; private var tf:TextField; private var distance:int = 1; public function Main() { Wonderfl.capture_delay(10); tf = createTextField("LOVE", 100); var bd:BitmapData = new BitmapData(465, 465, true, 0x00FFFFFF); var matrix:Matrix = new Matrix(); matrix.translate(100, 100); bd.draw(tf, matrix); bitmap = new Bitmap(bd); addChild(bitmap); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(event:Event):void { var bd:BitmapData = bitmap.bitmapData; bd.draw(tf); var filter:BevelFilter = new BevelFilter(distance, degree++, 0x9E7245, 1, 0xFFFFFF, 1, 4, 4, 1, 1, "outer", false); bd.applyFilter(bd, bd.rect, new Point(0, 0), filter); if (degree % 90 == 0 && distance <= 7) distance++; if (300 <= degree) removeEventListener(Event.ENTER_FRAME, onEnterFrame); } private function createTextField(text:String, size:int):TextField { var tf:TextField = new TextField(); tf.defaultTextFormat = new TextFormat("_typeWriter", size, 0xFFFFFFFF, true); tf.text = text; tf.autoSize = TextFieldAutoSize.LEFT; return tf; } } } forked from: 砂絵 - Sandpainting