1.数据存储
先运行一次存储数据
//储存对象,使用键值对的方法 封装H5
cc.sys.localStorage.setItem("name","蝙蝠侠");
‘再获取数据
const {ccclass, property} = cc._decorator;
@ccclass
export default class NewScript extends cc.Component {
start () {
//储存对象,使用键值对的方法 封装H5
//cc.sys.localStorage.setItem("name","蝙蝠侠");
//获取数据
let name = cc.sys.localStorage.getItem("name");
console.debug(name);
}
// update (dt) {}
}
//移除单个数据
cc.sys.localStorage.removeItem("name");
//清空数据
cc.sys.localStorage.clear();
2.Json数据
const {ccclass, property} = cc._decorator;
class Person{
id:number;
name:string;
wugong:string[];
//...
}
@ccclass
export default class NewScript extends cc.Component {
start () {
/*
json;
数据格式:json xml csv 写文本
客户端 - 客户端
游戏存档 -> 地图,坐标,人物,等级,属性,物品...
*/
let person: Person = new Person();
person.id = 10;
person.name = "李逍遥";
person.wugong = ["降龙十八掌","独孤九剑"];
//对象->字符串
/*
json {}代表对象 []代表数组
'{"id":10,"name":"李逍遥","wugong":["降龙十八掌","独孤九剑"]}'
*/
//对象 -> Json 序列化
let json = JSON.stringify(person); //把person对象的内容转为Json字符串
//存本地
cc.sys.localStorage.setItem("save1",json);
//json -> 对象 反序列化
let person2:Person = Object.assign(new Person(),JSON.parse(json));
console.debug(person2.wugong[1]);
}
// update (dt) {}
}
当给到一个Json数据是想要反序列化它时,需要创建一个类与他的属性相对于
3.数据格式
Json的存储形式
/*
Json格式
[{
"id":10
"name" : "李逍遥"
"wugong":[
"降龙十八掌","独孤九剑"
]
},{
"id":2
"name":"李逍遥"
"wugong":[
"魔刃","翻云覆雨"
]
}]
*/
XML的存储形式
xml容量比json大,当数据量特别复杂时用xml比较好
/*
<root>
<person id="10">
<nmae>李逍遥</name>
<wugong>降龙十八掌,独孤九剑</wugong>
</person>
<person id="2">
<nmae>王小虎</name>
<wugong>魔刃,翻云覆雨</wugong>
</person>
</root>
*/
csv的存储形式
/*
10,李逍遥,降龙十八掌/独孤九剑
2,王小虎,魔刀/翻云覆雨
*/
4.网络请求
响应头能获取响应体的type和length,响应体当前下载大小/总大小,就是目前下载进度
?之前访问的是服务器的文件
通过代码获取json
const {ccclass, property} = cc._decorator;
@ccclass
export default class NewScript extends cc.Component {
start () {
//url
let url = "https://v.api.aa1.cn/api/ximalaya/";
//请求
let request = cc.loader.getXMLHttpRequest();
request.open("GET",url,true);//方式,url,是否异步
request.onreadystatechange = ()=>{//是否回调
//请求状态改变都会回调
//请求结束后,获取信息
if(request.readyState == 4 && request.status == 200){//状态码0,1,2,3都是进行,4是请求结束,请求成功一般是200
console.debug("请求完成")
//获取json字符串
console.debug(request.responseText);
}
};
//开始请求
request.send();
}
}
不能跨域访问api*