我遇到了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