import flash.text.TextField; import flash.net.FileReference; import flash.events.Event; import flash.text.TextFieldType; import flash.events.MouseEvent; System.useCodePage = false; var fileLoad:FileReference; var fileSave:FileReference; loadbtn.addEventListener(MouseEvent.CLICK, onloadbtnClicked); savebtn.addEventListener(MouseEvent.CLICK, saveClickListener); function saveClickListener(e:MouseEvent):void { statetext.text = "saveClickListener"; fileSave = new FileReference(); fileSave.addEventListener(Event.COMPLETE, fileCompleteListener); var str:String = myTextInput.text; fileSave.save(str, "test.txt"); } function fileCompleteListener(e:Event):void { statetext.text = "fileCompleteListener"; } function onloadbtnClicked(event:MouseEvent):void { statetext.text = "onBrowse"; fileLoad = new FileReference(); fileLoad.addEventListener(Event.SELECT, onFileSelected); //var swfTypeFilter:FileFilter = new FileFilter("Text Files","*.txt;"); var allTypeFilter:FileFilter = new FileFilter("AlFl Files (*.*)","*.*"); //fileLoad.browse([swfTypeFilter, allTypeFilter]); fileLoad.browse([allTypeFilter]); } function onFileSelected(event:Event):void { statetext.text = "onFileSelected"; fileLoad.addEventListener(Event.COMPLETE, onFileLoaded); fileLoad.addEventListener(IOErrorEvent.IO_ERROR, onFileLoadError); fileLoad.load(); } function onFileLoaded(event:Event):void { statetext.text = "onFileLoaded"; var fileReference:FileReference = event.target as FileReference; trace("event.target : " + event.target.name); var data:ByteArray = fileReference["data"]; myTextInput.text = data.toString(); fileLoad.removeEventListener(Event.COMPLETE, onFileLoaded); fileLoad.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError); } function onFileLoadError(event:Event):void { fileLoad.removeEventListener(Event.COMPLETE, onFileLoaded); fileLoad.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError); statetext.text = "File load error"; } |
text파일 세이브와 로드를 만들 일이 있어서 만들게 되었습니다. load, save 작성 중 막히는 부분이 있어서 구글링을 하였습니다. 각 각 따로였지만, 정리를 제가 했습니다.
1. 디버그용으로 스테이지의 상단에 TextArea를 인스턴스 네임 statetext으로 생성했습니다.
2. statetext 하단에 myTextInput 인스턴스 네임을 갖는 TextArea 생성.
* TextArea 이 아닌 직접 inputText 형식으로 영역 그려주셔도 됩니다.
*참조 사이트 :
http://actionscriptexamples.com/2008/02/26/loading-text-files-using-the-urlloader-class-in-actionscript-30/
http://help.adobe.com/ko_KR/AS3LCR/Flash_10.0/
http://www.ilike2flash.com/2009/07/load-external-text-in-actionscript-3.html
'tech > FLASH' 카테고리의 다른 글
[AS3] 잘 되던게 안된다. ㅜㅜ (0) | 2011.08.30 |
---|---|
adobe flash 10.3으로 퍼블리싱 해봅시다. (0) | 2011.08.12 |
getDefinitionByName (0) | 2011.01.09 |
상수 const (0) | 2011.01.09 |
1180:call to a possibly undefined method addChild. (0) | 2010.12.07 |