データ保存

by tepe
♥0 | Line 59 | Modified 2014-05-11 12:19:05 | MIT License
play

ActionScript3 source code

/**
 * Copyright tepe ( http://wonderfl.net/user/tepe )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/lKJLf
 */

package {
    import flash.display.Sprite;
    import flash.text.*;
    public class FlashTest extends Sprite {
        
        public function FlashTest() {
            var tf:TextField = new TextField();
            tf.height = 400;
            addChild(tf);
            
            
            var dat:SaveData = new SaveData("data1");//データ名を指定してインスタンス作成
            
            
            var str:String = dat.show();//セーブデータの内容確認
            tf.appendText("\n"+str);
            
            
            //obj = new Object();
            var obj:Object = dat.data;//セーブデータ参照
            
            obj["text"] = "テスト";
            if(obj.hasOwnProperty("cnt")==false)obj["cnt"] = 0;
            else obj["cnt"]++; 
            
            dat.data = obj;//セーブデータ保存
            
            //dat.clear();//セーブデータ消去
        }
        
    }
}


//-------Objectデータをローカルに保存する------------------------------------------------
    import flash.net.*;
    class SaveData{
        private var so:SharedObject;
        //オブジェクト名を指定して開く
        public function SaveData(name:String){
            so = SharedObject.getLocal(name);
        }

        //データロード
        public function get data():Object{
            var obj:Object;
            if(so){ 
                obj = so.data;
                return obj;
            }      
            return null;
        }
        
        //データセーブ
        public function set data(obj:Object):void{
            if(so){
                for(var str:String in obj){
                    so.data[str] = obj[str];
                }
            }
        }
        //データ消去
        public function clear():void{
            if(so){
                so.clear();
            }
        }
        public function get length():int{
            var cnt:int=0;
            for(var str:String in so.data)cnt++;
            return cnt;
        }

        
        //データ確認
        public function show():String{
            var text:String = new String();
            for(var str:String in so.data){ 
                text += str;
                text += "="+so.data[str].toString()+"\n";
            }
            return text;
        }

    }