package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.Font; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.utils.ByteArray; /**@author kamoyusuke */ public class Message extends Sprite { public function Message():void { var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, completeHandler); loader.load(new URLRequest("timelineMessage.xml")) } private function completeHandler(e:Event):void { XML.ignoreWhitespace = true; var xml:XML = new XML(e.target.data); var tf:TextField = new TextField(); tf.defaultTextFormat = new TextFormat(xml.message[0].@font,Number(xml.message[0].@size)); tf.autoSize = TextFieldAutoSize.LEFT; tf.text = xml.message[0]; MMExecute2.setDefault(MMExecute2.CONFIG_JS_URI,"VisualizeTimeLine") MMExecute2.run("init", [Math.round(tf.height), Math.round(tf.width)]); //trace(Math.round(tf.width),Math.round(tf.height)) var canvas:BitmapData = new BitmapData(tf.width, tf.height, false); canvas.draw(tf); var board:BitmapData = new BitmapData(tf.width, tf.height, false); var bm:Bitmap = addChild(new Bitmap(board)) as Bitmap; drawVector(canvas,board); } private function drawByteArray(canvas:BitmapData, board:BitmapData = null):void{ var bytes:ByteArray = canvas.getPixels(canvas.rect); var color:uint, p:int; var _x:int; var _y:int = -1; for (bytes.position = 0; bytes.position < bytes.length; color = bytes.readUnsignedInt()) { p = bytes.position / 4 _x = p %canvas.width; _y += !_x ? 1: 0; if (!color) { //board.setPixel(_x, _y,0) MMExecute2.run("setMotionTween",[Math.round(_y),Math.round(_x)]); } } } private function drawVector(canvas:BitmapData, board:BitmapData = null):void { var bytes:Vector. = canvas.getVector(canvas.rect); bytes.fixed = true; canvas.lock(); var color:uint, i:int; var _x:int; var _y:int = -1; for (i; i < bytes.length; i++) { color = bytes[i]; _x = i %canvas.width; _y += !_x ? 1: 0; if (!color) { //board.setPixel(_x,_y,0) MMExecute2.run("setMotionTween",[_y,_x]); } } } } }