作者mucoci (奇宝~)
看板Flash
标题[讨论] ShareObject存档的使用
时间Tue May 13 12:25:09 2014
小弟日前经过两三款的练功後
已顺利发了几款游戏到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://webptt.com/cn.aspx?n=bbs/Flash/M.1399955112.A.4E4.html
1F:推 KawasumiMai:不太懂 05/13 13:48
2F:→ KawasumiMai:myarray类别阵列,savedate.date.myarray型态也是阵列 05/13 13:48
3F:→ KawasumiMai:所以myarray=savedate.date.myarray自然可以通 05/13 13:48
4F:→ KawasumiMai:var a:Number=10 是读取的还是自己宣告的? 05/13 13:48
5F:→ KawasumiMai:无法随着程式修改成20吗?还是写入shareObject失败? 05/13 13:49
6F:→ KawasumiMai:这部分缺少了相关的code,看不出问题出在哪 05/13 13:49
7F:→ mucoci:只是很单纯的把要存入的资料从阵列改成a 变数 05/13 14:10
8F:→ mucoci:然而 a改变後 savetata并没有即时改变…很怪 05/13 14:11
※ 编辑: mucoci (218.173.66.171), 05/13/2014 14:26:30
9F:推 viceversa56:什麽游戏? 想下载玩玩 05/13 20:25
10F:推 SheLoBDenI:照理说为存档有误的应该是你的秒数,不是死亡数。 05/13 20:32
11F:→ SheLoBDenI:但既然结果是这样就让我想到之前在处理array的问题 05/13 20:33
12F:→ SheLoBDenI:当ArrayA = ArrayB的时候不管对哪个做处理,两个都会变 05/13 20:33
13F:→ SheLoBDenI:这牵扯到AS3的基础问题。 05/13 20:36
14F:→ SheLoBDenI:照理说(未)存档。所以其实没有问题喔。 05/13 20:37
15F:→ mucoci:的确是阵列的参照问题~~不过小弟半路出家,基础不好.所以 05/13 21:19
16F:→ mucoci:还真不知道这问题... 05/13 21:19
17F:→ mucoci:想下载来玩玩看的,可於google play找僵屍大战Lite 05/13 21:20
18F:→ mucoci:不过用as3作游戏好快呀~~~~ 05/13 21:21
19F:→ mucoci:另一款可找 魔王的宠物 06/27 11:06