"use strict"; cc._RF.push(module, '2334b7QbQ5I2ZwxOl+jHz/i', 'nx.storage'); // Scripts/nx/kernel/nx.storage.js "use strict"; /******************************************************************************* * * Nx本地缓存管理 * * * * 2021.12.10 ******************************************************************************/ var CFG = require("config"); var NxObject = require("nx.object"); var Crypto = require("cryptoHelper"); var nxStorage = cc.Class({ "extends": NxObject, name: "nxStorage", sd: null, // 初始化 initialize: function initialize(_args) { // USPER this._super(_args); this.sd = cc.sys.localStorage; nx.storage = this; return true; }, // 销毁 uninitialize: function uninitialize() { nx.storage = null; // USPER return this._super(); }, // 取值 get: function get(_key, _def, _pri) { if (_def === void 0) { _def = ""; } if (_pri === void 0) { _pri = false; } if (nx.dt.strEmpty(_key)) { nx.logger.error("[缓存]空键值"); return _def; } var val = this.sd.getItem(this.skey(_key, _pri)); return Crypto.decrypt(val) || _def; }, // 取数 getNumber: function getNumber(_key, _def, _pri) { if (_def === void 0) { _def = 0; } if (_pri === void 0) { _pri = false; } var val = this.get(_key, _def, _pri); var num = parseInt(val); if (!nx.dt.numGood(num)) { num = _def; } return num; }, // 取对象 getObject: function getObject(key, _pri) { return JSON.parse(this.get(key, "{}", _pri)); }, // 设值 set: function set(_key, _value, _pri) { if (nx.dt.strEmpty(_key)) { nx.logger.error("[缓存]空键值"); return; } var val = Crypto.encrypt("" + _value); this.sd.setItem(this.skey(_key, _pri), val); nx.logger.debug("[缓存]更新:%s -> %s", _key, _value); }, // 设对象 setObject: function setObject(key, value, _pri) { this.set(key, JSON.stringify(value), _pri); }, // 删值 del: function del(_key, _pri) { if (nx.dt.strEmpty(_key)) { nx.logger.warn("[缓存]空键值"); return; } this.sd.removeItem(this.skey(_key, _pri)); nx.logger.debug("[缓存]删除:%s", _key); }, // 关键字组合 skey: function skey(_key, _pri) { // 是否私有 if (_pri) { var info = nx.bridge.vget("curRole"); if (info) { _key = nx.text.format("%s.%s.%s", _key, info.srv_id, info.rid); } } return cc.js.formatStr("[%s]%s", this.prefix(), _key); }, // 获取唯一前缀 prefix: function prefix() { var key = CFG.GName; if (window.nx && nx.frame) { key = nx.frame.vget("GUUID"); } return key || CFG.GName; } }); // 模块导出 module.exports = nxStorage; cc._RF.pop();