FileReference de Save nipx forked:0favorite:2lines:81license : MIT License modified : 2010-07-23 20:15:24 Embed Tweet package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.*; import flash.utils.*; import mx.graphics.codec.*; import flashx.textLayout.formats.TextAlign; [SWF(backgroundColor="#000000", frameRate="30", width="500", height="500")] public class FlashTest extends Sprite { public function FlashTest() { //flashだけで画像ファイルを保存するよ。 var canvas:Canvas = new Canvas(); canvas.x = 50; canvas.y = 50; addChild( canvas ); var btn:Sprite = new Sprite(); btn.mouseChildren = false; btn.buttonMode = true; btn.x = 50; btn.y = 10; btn.graphics.beginFill( 0xCCCCCC ); btn.graphics.drawRoundRect( 0, 0, 50, 20, 5, 5 ); var label:TextField = new TextField(); label.width = 0; label.wordWrap = false; label.x = 25; label.autoSize = TextFieldAutoSize.CENTER; label.defaultTextFormat = new TextFormat( "_ゴシック", 12, 0x333333); label.text = "Save"; btn.addChild( label ); addChild( btn ); btn.addEventListener( MouseEvent.MOUSE_DOWN, function(e:MouseEvent):void{ var bmd:BitmapData = new BitmapData( 400,400 ); bmd.draw( canvas ); var encorder:PNGEncoder = new PNGEncoder(); var bytes:ByteArray = encorder.encode( bmd ); var file:FileReference = new FileReference(); file.save( bytes, "Image.png" ); }); } } } import flash.display.*; import flash.events.*; class Canvas extends Sprite{ public function Canvas(){ var bg:Sprite = new Sprite(); g = bg.graphics; g.beginFill( 0xFFFFFF ); g.drawRect( 0, 0, 400, 400 ); g.endFill(); addChild( bg ); var maskObject:Sprite = new Sprite(); g = maskObject.graphics; g.beginFill( 0xFF0000 ); g.drawRect( 0, 0, 400, 400 ); g.endFill(); addChild( maskObject ); mask = maskObject; var layer:Sprite = new Sprite(); addChild( layer ); g = layer.graphics; g.lineStyle( 0, 0x000000 ); mouseChildren = false; addEventListener( MouseEvent.MOUSE_DOWN, onMouseDown ); } private var g:Graphics; private function onMouseDown( e:MouseEvent ):void{ g.moveTo( e.localX, e.localY ); addEventListener( MouseEvent.MOUSE_MOVE, onMouseMove ); addEventListener( MouseEvent.MOUSE_UP, onMouseUp ); } private function onMouseMove( e:MouseEvent ):void{ g.lineTo( e.localX, e.localY ); } private function onMouseUp( e:MouseEvent ):void{ g.lineTo( e.localX, e.localY ); removeEventListener( MouseEvent.MOUSE_MOVE, onMouseMove ); removeEventListener( MouseEvent.MOUSE_UP, onMouseUp ); } } Code Fullscreen Preview Fullscreen tjoen cpu_t : save save PNGEncoder localY localX bytes FileReference encode label removeEventListener MouseEvent.MOUSE_MOVE mask MouseEvent save drawRect MouseEvent.MOUSE_UP mouseChildren MouseEvent.MOUSE_DOWN TextFieldAutoSize.CENTER drawRoundRect endFill wordWrap