我遇到了sharedObject flush方法的問題。 swf關閉時是否可以不刷新數據?我的savegame函數是調用flush方法的唯一函數,它還確定哪個數組將進入sharedObject數據的哪個位置。是否有可能無法關閉共享對象?
parentMC.sharedObject.data.moveSpdUpgrade = parentMC.upgrades.tempMoveSpdUpgrade;
parentMC.sharedObject.flush();
然而,當我修改tempMoveSpdUpgrade陣列,它也保存在共享對象的新數據,即使沖洗尚未調用呢。
tempMoveSpdUpgrade[0][2] = 1;
trace(parentMC.sharedObject.data.moveSpdUpgrade);
此跟蹤表明數據已經改變,但我不明白,因爲刷新尚未調用和SWF尚未關閉。我想知道爲什麼在數組中進行的修改會自動更改sharedObject數據。
謝謝你的幫助。
編輯:
public function saveGame(){
parentMC.sharedObject.data.money = parentMC.money;
parentMC.sharedObject.data.moveSpdUpgrade = parentMC.upgrades.tempMoveSpdUpgrade;
parentMC.sharedObject.flush();
}
就像我與hackattack評論說,這筆錢是正確的數據時,我不救,但moveSpdUpgrade陣列被修改兩種方式。
我試着創建一個新的數組moveSpdUpgrade並使用這個保存來代替。 'moveSpdUpgrade = tempMoveSpdUpgrade.concat(); \t \t \t tempMoveSpdUpgrade [0] [0] = 0; \t \t \t trace(moveSpdUpgrade); \t \t \t trace(tempMoveSpdUpgrade);'但是,即使在concat後面更改了這兩條曲線,也會顯示相同的內容。 – oliboon 2012-07-24 20:18:31
我意識到你的例子是用1維數組。我已經修改它適合我的代碼,它現在的作品現在..非常感謝你..我需要刷新陣列顯然 – oliboon 2012-07-24 21:00:49
歡迎;)我一遍又一遍地遇到這個問題^^ – Sidrich2009 2012-07-26 00:25:10