//消息队列管理
import { _decorator, Component, Node } from "cc";
import { GameStorageKeyConfig } from "../../config/Config";
const { ccclass, property } = _decorator;
@ccclass("MessageQueue")
export class MessageQueue {
//存储key
private storageKey: string = "";
//实例
private static _instance: MessageQueue = null;
//队列
private _queue: any[] = [];
//构造器
constructor() {
this.storageKey = GameStorageKeyConfig.MessageQueue;
let queue = this.load();
if (!queue) {
queue = [];
}
this._queue = queue;
}
//获取实例化
public static get instance(): MessageQueue {
if (this._instance == null) {
this._instance = new MessageQueue();
}
return this._instance;
}
//添加消息
public addMessage(message: any) {
this._queue.push(message);
this.save();
}
//弹出消息
public popMessage(): any {
if (this._queue.length > 0) {
let _message = this._queue.shift();
this.save();
return _message;
}
return null;
}
//持久化保存
public save() {
localStorage.setItem(this.storageKey, JSON.stringify(this._queue));
}
//加载数据
public load() {
const data = localStorage.getItem(this.storageKey);
return data ? JSON.parse(data) : null;
}
//清空消息队列
public clearMessage() {
this._queue = [];
this.save();
}
}
封装的一个消息管理类,记录一下
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 注:本来只是想整理成Handler部分的面试题及答案拿来背诵的,哪知一看源码就没停下来,变成了大篇文章...本文根...