// write as3 code here.. package { import com.adobe.images.JPGEncoder; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.net.FileReference; import flash.events.*; import flash.net.FileReferenceList; import flash.text.TextField; import flash.text.TextFieldType; import flash.utils.ByteArray; public class Main extends Sprite{ private var txt:TextField; public function Main() { //テキスト入力 txt = new TextField(); txt.width = 400; txt.multiline = true; txt.text = "ここのテキストフィールドは変更できます☆\r\n改行"; txt.border = true; txt.type = TextFieldType.INPUT; txt.x = 20; txt.y = 20; addChild(txt); //保存ボタン(JPG) var jpgSave:TextField = new TextField(); CreateSaveButton(jpgSave, "JPGで保存",20, 340 ); addChild( jpgSave ); jpgSave.addEventListener(MouseEvent.CLICK, SaveFile(SaveJPG, "test.jpg")); //保存ボタン(TXT) var txtSave:TextField = new TextField(); CreateSaveButton(txtSave, "TXTで保存",20, 380 ); addChild( txtSave ); txtSave.addEventListener(MouseEvent.CLICK, SaveFile(SaveTXT, "test.txt")); } /** * セーブボタンのデフォルト設定 * @param button */ private function CreateSaveButton( button:TextField, bName:String , x:int, y:int) : void { button.text = bName; button.y = y; button.x = x; button.width = 100; button.height = 20; button.background = true; button.backgroundColor = 0x888888; button.textColor = 0x000000; button.selectable = false; } private function SaveFile(encFunc:Function, fileName:String):Function { return function(e:MouseEvent) : void { var ff:FileReference = new FileReference(); ff.addEventListener(Event.OPEN, function(e:Event):void { trace("open"); } ); ff.addEventListener(ProgressEvent.PROGRESS, function(e:ProgressEvent):void { trace("progress"); } ); ff.addEventListener(Event.COMPLETE, function(e:Event):void { trace("complete"); } ); ff.addEventListener(Event.CANCEL, function(e:Event):void { trace("cancel"); } ); ff.addEventListener(Event.SELECT, function(e:Event):void { trace("select"); } ); ff.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void { trace("ioError"); } ); ff.save(encFunc(), fileName); } } // JPGでセーブ private function SaveJPG() : ByteArray { var bmp_data:BitmapData = new BitmapData(txt.width, txt.height); bmp_data.draw(txt) var jpgEncoder:JPGEncoder = new JPGEncoder(80); var jpgData:ByteArray = jpgEncoder.encode(bmp_data); return jpgData; } // TXTでセーブ private function SaveTXT() : String { return txt.text; } } } 保存サンプル