In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

FileReferenceでテキストファイルをローカルPCに保存。

FileReferenceでテキストファイルをローカルPCに保存。
* 
* Flash Player 10 のローカルファイルアクセス機能 (FileReference クラス)
* http://blogs.adobe.com/akamijo/archives/2008/07/flash_player_10_5.html
* 
*
Get Adobe Flash player
by umhr 04 Aug 2010
/**
 * Copyright umhr ( http://wonderfl.net/user/umhr )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/yjrx
 */

/*
 * FileReferenceでテキストファイルをローカルPCに保存。
 * 
 * Flash Player 10 のローカルファイルアクセス機能 (FileReference クラス)
 * http://blogs.adobe.com/akamijo/archives/2008/07/flash_player_10_5.html
 * 
 * */
package 
{
    import com.bit101.components.PushButton;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.FileReference;
    import flash.text.TextField;
    
    /**
     * ...
     * @author umhr
     */
    public class Main extends Sprite 
    {
        private var _tf:TextField;
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
        
        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            
            _tf = new TextField();
            _tf.width = 400;
            _tf.height = 300;
            _tf.type = "input";
            _tf.border = true;
            _tf.backgroundColor = 0xEEEEEE;
            _tf.background = true;
            _tf.text = "これは UTF-8 の文字列として保存されます";
            _tf.multiline = true;
            _tf.wordWrap = true;
            this.addChild(_tf);
            
            new PushButton(this, 300, 300, "Save", atClick);
            
        }
        
        private function atClick(event:MouseEvent):void {
            var fr:FileReference=new FileReference();
            var dat:String = _tf.text;
            
            //Windowsの改行に置換
            dat = dat.replace(/\r/g, "\r\n");
            
            fr.addEventListener(Event.COMPLETE,onComplete);
            fr.save(dat, "UTF8Text.txt"); // ダイアログを表示する
             
            function onComplete(e:Event):void
            {
              trace(fr.name); // ユーザが指定したファイル名を表示
            }
            
        }
        
    }
    
}