Cocos Creator如何讀寫本地文件
一、使用localStorage存儲和讀取本地文件
1. 常用API
存儲:cc.sys.localStorage.setItem(key, value);
兩個參數(shù),用來索引的字符串鍵值 key,和要保存的字符串數(shù)據(jù) value。
讀?。?/strong>cc.sys.localStorage.getItem(key);
一個參數(shù),只需要根據(jù)key來讀取相應的值。
刪除:cc.sys.localStorage.removeItem(key);
移除一個存儲的值后,無法再讀取。
這種處理方式,類似Java中的Map。
2. 簡單案例
cc.sys.localStorage.setItem(key, value)
上面的方法需要兩個參數(shù),用來索引的字符串鍵值 key,和要保存的字符串數(shù)據(jù) value。
假如我們要保存玩家持有的金錢數(shù),假設鍵值為 gold:
cc.sys.localStorage.setItem('gold', 100);
對于復雜的對象數(shù)據(jù),我們可以通過將對象序列化為 JSON 后保存:
userData = {
? ?name: 'Tracer',
? ?level: 1,
? ?gold: 100
};
cc.sys.localStorage.setItem('userData', JSON.stringify(userData));
和 setItem 相對應,getItem 方法只要一個鍵值參數(shù)就可以取出我們之前保存的值了。對于上文中儲存的用戶數(shù)據(jù):
var userData = JSON.parse(cc.sys.localStorage.getItem('userData'));
3.數(shù)據(jù)加密
對于單機游戲來說,對玩家存檔進行加密可以延緩游戲被破解的時間。要加密存儲數(shù)據(jù),只要在將數(shù)據(jù)通過JSON.stringify 轉化為字符串后調(diào)用你選中的加密算法進行處理,再將加密結果傳入 setItem 接口即可。
您可以搜索并選擇一個適用的加密算法和第三方庫,比如 encryptjs, 將下載好的庫文件放入你的項目,存儲時:
讀取時:
var cipherText = cc.sys.localStorage.getItem('userData');
var userData=JSON.parse(encrypt.decrypt(cipherText,secretkey,256));
注意 數(shù)據(jù)加密不能保證對用戶檔案的完全掌控,如果您需要確保游戲存檔不被破解,請使用服務器進行數(shù)據(jù)存取。
二、使用jsb.fileUtils
1.常用API
jsb是javascript bind的代表,整個C/C++ 導出的綁定都在這個jsb里面,jsb 支持native,不支持h5(瀏覽器上無法運行jsb is not defined )。而且fileUtils是本地文件讀寫的一個工具類,全局只有一個實例。

2.簡單案例
三、瀏覽器環(huán)境下寫文件
由于CocosCreator官方文檔中沒有提供跨平臺的通用寫文件接口。如果運行環(huán)境是瀏覽器,有一個替代方案可以實現(xiàn)把內(nèi)容保存到文件,效果相當于下載了一個文件到本地。代碼如下:
四、Cocos Creator 讀寫本地的json文件
關于Cocos Creator讀寫本地json文件,我們單獨給大家寫一篇文章專門做介紹!
更多教學視頻及素材源碼:
https://www.bycwedu.com/promotion_channels/829468798