ASが運営するWebサイトに飛びます

2007年09月01日

SharedObjectを使って任意の数字を保存する

SharedObjectを使って前に入れた数字を保存して表示する処理を行います。

例題 テキストフィールドに半角数字を入れる。保存のボタンを押すと代入した数字がSharedObjectに保存される。ロードを押すと以前に入れた数字が表示される。

SharedObjectを使っているので一度保存した数字は新規に数字を保存するまで残ります。数字を入れた後一度swfを閉じ、再度swfを開いてロードボタンを押すと、前に保存した数字が表示されます。

Flashゲームではデータの保存が必須なのでこれからSharedObjectに関する記述は多くなっていくと思います。例題のソースコード



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);

posted by 神風記 at 00:00| Comment(0) | TrackBack(0) | データ保存 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/53304823
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック