SharedObjectを使って前に入れた数字を保存して表示する処理を行います。
例題 テキストフィールドに半角数字を入れる。保存のボタンを押すと代入した数字がSharedObjectに保存される。ロードを押すと以前に入れた数字が表示される。
SharedObjectを使っているので一度保存した数字は新規に数字を保存するまで残ります。数字を入れた後一度swfを閉じ、再度swfを開いてロードボタンを押すと、前に保存した数字が表示されます。
例題のソースコード
var so:SharedObject = SharedObject.getLocal("saveData"); so.data.highScore ;
so.flush(); trace("so = "+so.data.highScore)//out put 1000
var input_txt:TextField=new TextField();
input_txt.width=100;
input_txt.height=20;
input_txt.border=true;
input_txt.type=TextFieldType.INPUT;
input_txt.text="半角数字をいれてください";
input_txt.autoSize=TextFieldAutoSize.LEFT;
input_txt.addEventListener(Event.CHANGE,changeHandler);
var isChange:Boolean=false;
function changeHandler(evt:Event) { if(!isChange) { trace("イベント適用"); input_txt.text=""; isChange=true; } }
addChild(input_txt);
var save_btn:Sprite=new Sprite();
save_btn.graphics.beginFill(0x000000);
save_btn.graphics.drawRect(0,0,40,20);
save_btn.graphics.endFill();
save_btn.y=100;
save_btn.addEventListener(MouseEvent.CLICK,saveHandler);
var score_num:Number=0;
function saveHandler(evt:Event) { score_num=Number(input_txt.text); trace("数字のタイプは"+typeof score_num); trace("入力された数字は"+score_num); so.data.highScore=score_num; so.flush(); }
addChild(save_btn);
var load_btn:Sprite=new Sprite();
load_btn.graphics.beginFill(0x000000);
load_btn.graphics.drawRect(0,0,40,20);
load_btn.graphics.endFill();
load_btn.y=300;
load_btn.addEventListener(MouseEvent.CLICK,loadHandler);
function loadHandler(evt:Event) { trace("現在のハイスコアは"+so.data.highScore+"です") trace("score_txtの座標は"+score_txt.x); score_txt.text="代入した数字は"+so.data.highScore addChild(score_sp); so.flush(); }
addChild(load_btn);
var score_sp:Sprite=new Sprite();
score_sp.graphics.beginFill(0x000000);
score_sp.graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
score_sp.graphics.endFill();
score_sp.alpha=0.4;
score_sp.addEventListener(MouseEvent.CLICK,removeScoreHandler);
function removeScoreHandler(evt:Event) { removeChild(score_sp); }
var score_txt:TextField=new TextField();
score_txt.border=true;
score_txt.autoSize=TextFieldAutoSize.LEFT;
trace("score_txtの座標は"+score_txt.x); score_txt.text="ここにスコアが入ります";
score_txt.x=(stage.stage.stageWidth)/2-(score_txt.width/2) score_sp.addChild(score_txt);
var save_txt:TextField=new TextField();
save_txt.selectable=false;
save_txt.textColor=0xFFFFFF;
save_txt.text="保存";
save_txt.autoSize=TextFieldAutoSize.LEFT;
save_txt.border=true;
save_btn.addChild(save_txt);
var load_txt:TextField=new TextField();
load_txt.selectable=false;
load_txt.textColor=0xFFFFFF;
load_txt.text="ロード";
load_txt.autoSize=TextFieldAutoSize.LEFT;
load_btn.addChild(load_txt);
|