FileReference de Save
♥2 |
Line 81 |
Modified 2010-07-23 20:15:24 |
MIT License
archived:2017-03-10 07:00:41
ActionScript3 source code
/**
* Copyright nipx ( http://wonderfl.net/user/nipx )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/gKIt
*/
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 );
}
}