package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageQuality; import flash.display.StageScaleMode; import flash.events.Event; import flash.filters.BitmapFilterQuality; import flash.filters.BlurFilter; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import jp.progression.commands.*; import jp.progression.commands.display.*; import jp.progression.commands.lists.*; import jp.progression.commands.tweens.*; import jp.progression.events.ExecuteEvent; import com.flashdynamix.utils.SWFProfiler; [SWF(width=465, height=465, frameRate=30, backgroundColor=0x000000)] public class Main extends Sprite { private var _messages:Array; private var _txt:TextField; private var _sp:Sprite; private var _bm:Bitmap; private var _exe:CommandList; public function Main() { addEventListener(Event.ADDED_TO_STAGE, initialize); } private function initialize(evt:Event):void { removeEventListener(Event.ADDED_TO_STAGE, initialize); // setup stage. stage.align = StageAlign.TOP_LEFT; stage.quality = StageQuality.HIGH; stage.scaleMode = StageScaleMode.NO_SCALE; // setup debugger. SWFProfiler.init(this); _txt = new TextField(); _txt.defaultTextFormat = new TextFormat("Arial", 96); _txt.autoSize = TextFieldAutoSize.LEFT; _bm = new Bitmap(); _bm.smoothing = true; _bm.filters = [ new BlurFilter(4, 4, BitmapFilterQuality.MEDIUM), ]; _sp = new Sprite(); _sp.addChild(_bm); _sp.x = stage.stageWidth >> 1; _sp.y = stage.stageHeight >> 1; _sp.blendMode = BlendMode.INVERT; addChild(_sp); var i:uint, l:uint; l = MESSAGES.length; _exe = new LoopList(); _exe.addCommand( new Func(splitMessages) ); for (i=0; i