看板 Flash 關於我們 聯絡資訊
小弟日前經過兩三款的練功後 已順利發了幾款遊戲到google play商店 感謝本版的協助~~ 不過 小弟今日在作存檔功能時 用了shareobject這東西 經過測試後 發現… 陣列類型的資料可直接儲存~~而且是即時的 例: var myarray:Array= new Array(); myarray[1]= new 圖片1(); 或 myarray[1]= 10; --->三秒後把10換成20; myarray[2]= 20; --->三秒後把20變成30; 宣告存檔 var savedate:SharedObject = SharedObject.getLocal( "save", "/" );//存檔設定 存入 savedate.date.myarray=myarray; ////不用加入[]..真神奇 取出時 myarray=savedate.date.myarray; 小弟試著trace 陣列內的數值,會即時改變,如果是圖片的話,也會即時紀錄位置 但是 當不是陣列時… 例: var a:Number=10; ---->隨著程式進行變成20 a竟然只會是原來"存檔"的10 不會變即時資料… 雖然解決方法很多很簡單,不過為什麼會有這種差異呢?有人知道嗎~~? 還是我理解錯誤了~~? //附上程式碼給大家參考/////////////////////// var gaarmynum:Array=new Array(); var atnum:Number=10; var mcTimer= new Timer(1000);//計時器 mcTimer.addEventListener(TimerEvent.TIMER, add1); //時間到執行 mcTimer.start();//開始 function add1(e:Event):void //每秒增加1 { gaarmunum[1]=gaarmunum[1] +1; gaarmunum[2]=gaarmunum[2] +1; ] if (敵人死掉)//特定狀況才減1 { atnum=atnum-1; } save_mc.addEventListener(MouseEvent.CLICK, save_act); function save_act(me:MouseEvent):void//方位及勝負判定 { save.data.gaarmynum=gaarmynum; save.data.atnum=atnum; save.flush(); } 存檔後 trace save.date.gaarmynum[1]; --->20 即時隨秒數增加 (無誤) trace save.date.atnum; --->10,沒有任何敵人死亡者 (無誤) 存檔後10秒再trace trace save.date.gaarmynum[1]; --->30 即時隨秒數增加 (無誤) trace save.date.atnum; --->仍為10 ,沒有任何敵人死亡者 (無誤) 讀檔 trace save.date.gaarmynum[1]; --->30 即時隨秒數增加 (無誤) trace save.date.atnum; --->仍為10 ,沒有任何敵人死亡者 (無誤) 讀檔後十秒(且1個敵人死亡,未存檔) trace save.date.gaarmynum[1]; --->40 即時隨秒數增加 (無誤) trace save.date.atnum; --->仍為10 ,沒有任何敵人死亡者 (有誤) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.66.171 ※ 文章網址: http://www.ptt.cc/bbs/Flash/M.1399955112.A.4E4.html
KawasumiMai:不太懂 05/13 13:48
KawasumiMai:myarray類別陣列,savedate.date.myarray型態也是陣列 05/13 13:48
KawasumiMai:所以myarray=savedate.date.myarray自然可以通 05/13 13:48
KawasumiMai:var a:Number=10 是讀取的還是自己宣告的? 05/13 13:48
KawasumiMai:無法隨著程式修改成20嗎?還是寫入shareObject失敗? 05/13 13:49
KawasumiMai:這部分缺少了相關的code,看不出問題出在哪 05/13 13:49
mucoci:只是很單純的把要存入的資料從陣列改成a 變數 05/13 14:10
mucoci:然而 a改變後 savetata並沒有即時改變…很怪 05/13 14:11
※ 編輯: mucoci (218.173.66.171), 05/13/2014 14:26:30
viceversa56:什麼遊戲? 想下載玩玩 05/13 20:25
SheLoBDenI:照理說為存檔有誤的應該是你的秒數,不是死亡數。 05/13 20:32
SheLoBDenI:但既然結果是這樣就讓我想到之前在處理array的問題 05/13 20:33
SheLoBDenI:當ArrayA = ArrayB的時候不管對哪個做處理,兩個都會變 05/13 20:33
SheLoBDenI:這牽扯到AS3的基礎問題。 05/13 20:36
SheLoBDenI:照理說(未)存檔。所以其實沒有問題喔。 05/13 20:37
mucoci:的確是陣列的參照問題~~不過小弟半路出家,基礎不好.所以 05/13 21:19
mucoci:還真不知道這問題... 05/13 21:19
mucoci:想下載來玩玩看的,可於google play找僵屍大戰Lite 05/13 21:20
mucoci:不過用as3作遊戲好快呀~~~~ 05/13 21:21
mucoci:另一款可找 魔王的寵物 06/27 11:06