CocosCreator知识库(五)_本地存储(localStorage)

本文介绍了CocosCreator中使用localStorage进行本地数据存储的方法,包括存储、获取、移除和清除所有数据的详细操作,并提供了相关Demo示例,帮助开发者实现类似服务器端效果的本地数据管理。

在游戏开发过程中,如果能将游戏数据保存在起来,当下次进入

游戏时该数据任然存在;

就像一般游戏保存游戏进度一样,对开发和测试都是很方便的,

特别是对于客户端不会服务器又想实现服务器端效果的开发者;

这里简要介绍CocosCreator开发中的本地数据存取

(sys.localStorage):

   存储数据:cc.sys.localStorage.setItem(“key”,”value”)

   获取数据:cc.sys.localStorage.getItem(“key”)

   移除数据:cc.sys.localStorage.removeItem(“key”)

   清除所有:cc.sys.localStorage.clear()

Demo1=>存储本地数据:

//分数写到本地( 当前分 最高分 历史记录)
updateScore: function() {
var currentScore = this.scoreDisplay.string;
var scoreData = {
'score':currentScore,
'time': D.common.timeFmt(new Date(),'yyyy-MM-dd hh:mm:ss'),
};
var preData = cc.sys.localStorage.getItem('score');
var preTopScore = cc.sys.localStorage.getItem('topScore');
if (!preTopScore || parseInt(preTopScore) < parseInt(currentScore)){
cc.sys.localStorage.setItem('topScore', currentScore);
}
if(!preData){
preData = [];
preData.unshift(scoreData);
} else {
preData = JSON.parse(preData);
     if (!(preData instanceof Array)){
preData = [];
}
preData.unshift(scoreData);
}
cc.sys.localStorage.setItem('currentScore', currentScore);
cc.sys.localStorage.setItem('score', JSON.stringify(preData));
},


Demo2=>模仿UserDefault实现数据封装:

var LocalManager = {

setBool:function(_key,_value){
cc.sys.localStorage.setItem(_key,_value.toString())
},

getBool:function(_key){
return cc.sys.localStorage.getItem(_key) == "false" ? false : true
},

setInt:function(_key,_value){
cc.sys.localStorage.setItem(_key,_value.toString())
},

getInt:function(_key){
return Number(cc.sys.localStorage.getItem(_key))
},

setString:function(_key,_value){
cc.sys.localStorage.setItem(_key,_value)
},

getString:function(_key){
return cc.sys.localStorage.getItem(_key)
},

setObject:function(_key,_value){
cc.sys.localStorage.setItem(_key,JSON.stringify(_value))
},

getObject:function(_key){
return JSON.parse(cc.sys.localStorage.getItem(_key))
},
},


Demo3=>流程参考:

var BaseLocalData = {};
/*
* 写入数据,将数据存储在本地
* @param jsonName:json文件名字
*/
var baseData = [{a:1},{b:2},{c:3},{d:4},{e:5},{f:6},{g:7}];
BaseLocalData.setItem = function(jsonName)
{
var baseData = JSON.stringify(jsonName);
sys.localStorage.setItem("baseData", baseData);
};
/*
* 读取基础数据
* 还回json格式数据
*/
BaseLocalData.getItem = function()
{
var baseData1 = JSON.stringify(baseData); //将json格式转换成string
sys.localStorage.setItem("baseData", baseData1); //将数据存储在本地
var baseDataa = sys.localStorage.getItem("baseData"); //从本地读取数据
baseDataa = JSON.parse(baseDataa); //将string转换成json
return baseDataa;
};
/*
* 删除数据
*/
BaseLocalData.deleteItem = function()
{
sys.localStorage.removeItem("baseData");
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值