2009年12月24日 星期四

[AS2] 類似Cookie的SharedObject_實例

知識+這提問~~
flash shared object 存檔語法(AS2)
http://tw.knowledge.yahoo.com/question/question?qid=1009111105625
以下摘錄提問內容
遊戲很長~
所以我想用 shared object 來寫存檔的語法~(as2 喔~)
之前看了一個範例~
他是可以記住該實體物件的 x 座標和 y 座標~
但我想做的不是數值的~是布林值~
我想讓電腦自己去記住該物件的 visible 是 true 還是 false
希望能做到以下效果~

aa_mc 是一個元件的實體名稱
接著另一個按鈕裡面寫了~
on(press){
if(aa_mc._visible == true){
aa_mc._visible = false;
} else if(aa_mc._visible == false){
aa_mc._visible = true;
}
}

接著每次關掉在打開時~
電腦能自己記住 aa_mc 的 visible 是 true 還是 false



SWF預覽


[AS2] 類似Cookie的SharedObject_實例
第一影格AS2
aa_mc._x = 377;
aa_mc._y = 78;
//宣告so變數為SharedObject
var so:SharedObject = SharedObject.getLocal("saveinfo", "/");
//
if (so.data.num != undefined) {
 aa_mc._visible = so.data.aaVisible;
 aa_mc._x = so.data.aaX;
 aa_mc._y = so.data.aaY;
 num_txt.text=so.data.num;
}else{
 so.data.num=0;
 num_txt.text=so.data.num;
}
//[切換及寫入SO]按鈕事件函式
buttonA.onRelease = function() {
 aa_mc._x = 253;
 aa_mc._y = 103;
 //
 if (aa_mc._visible == true) {
  aa_mc._visible = false;
 } else if (aa_mc._visible == false) {
  aa_mc._visible = true;
 }
 //建立及指定共享物件之data屬性的各種屬性
 so.data.aaVisible = aa_mc._visible;
 so.data.aaX = aa_mc._x;
 so.data.aaY = aa_mc._y;
 so.data.num++;
 //立即將本機上的持續共享物件寫到本機檔案中
 so.flush();
};
//[清除SO]按鈕事件函式
clearSO.onRelease=function(){
 //清除SharedObject的記錄
 so.clear();
 buttonA._visible=0;
}

FLA下載

沒有留言: