mirror of
https://gitee.com/dgflash/oops-framework.git
synced 2026-05-20 17:55:41 +08:00
.
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "2a22fa08-80f3-4145-8197-bd0b1cbb129a",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.1",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "5d11cc2e-27a7-4103-b91b-03989400c84e",
|
||||
"files": [
|
||||
".js",
|
||||
".trans"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"importAsPlugin": false,
|
||||
"moduleId": "project:///assets/script/core/event/AnimationEvent.js",
|
||||
"importerSettings": 3
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
/*
|
||||
* @Author: dgflash
|
||||
* @Date: 2021-07-03 16:13:17
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-01-27 10:05:12
|
||||
*/
|
||||
/** ---------- 全局消息事件 ---------- */
|
||||
export enum EngineMessage {
|
||||
/** 中途退出游戏后,再进入游戏 */
|
||||
GAME_ENTER = "EngineMessage.GAME_ENTER",
|
||||
/** 中途退出游戏 */
|
||||
GAME_EXIT = "EngineMessage.GAME_EXIT",
|
||||
/** 游戏尺寸修改事件 */
|
||||
GAME_RESIZE = "EngineMessage.GAME_RESIZE"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "7f50140e-d51c-4c81-aefb-4f89562e25ba",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"moduleId": "project:///assets/script/core/event/EngineMessage.js",
|
||||
"importerSettings": 4,
|
||||
"simulateGlobals": []
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
import { MessageEventData } from "./MessageManager";
|
||||
|
||||
/*
|
||||
* 事件对象基类,继承该类将拥有发送和接送事件的能力
|
||||
*/
|
||||
export class EventDispatcher {
|
||||
protected _msg: MessageEventData | null = null;
|
||||
|
||||
/**
|
||||
* 注册全局事件
|
||||
* @param event(string) 事件名
|
||||
* @param listener(function) 处理事件的侦听器函数
|
||||
* @param thisObj(object) 侦听函数绑定的this对象
|
||||
*/
|
||||
public on(event: string, listener: (event: string, args: any) => void, thisObj: any) {
|
||||
if (this._msg == null) {
|
||||
this._msg = new MessageEventData();
|
||||
}
|
||||
this._msg.on(event, listener, thisObj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除全局事件
|
||||
* @param event(string) 事件名
|
||||
* @param listener(function) 处理事件的侦听器函数
|
||||
* @param thisObj(object) 侦听函数绑定的this对象
|
||||
*/
|
||||
public off(event: string) {
|
||||
if (this._msg) {
|
||||
this._msg.off(event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发全局事件
|
||||
* @param event(string) 事件名
|
||||
* @param arg(Array) 事件参数
|
||||
*/
|
||||
public dispatchEvent(event: string, arg: any = null) {
|
||||
if (this._msg == null) {
|
||||
this._msg = new MessageEventData();
|
||||
}
|
||||
this._msg.dispatchEvent(event, arg);
|
||||
}
|
||||
/**
|
||||
* 销毁事件对象
|
||||
*/
|
||||
public destroy() {
|
||||
if (this._msg) {
|
||||
this._msg.removes();
|
||||
}
|
||||
this._msg = null;
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "e718e259-c64b-49fb-b01f-9b2a2f2b0e6c",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"moduleId": "project:///assets/script/core/event/EventDispatcher.js",
|
||||
"importerSettings": 4,
|
||||
"simulateGlobals": []
|
||||
}
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
import { Logger } from "../log/Logger";
|
||||
|
||||
class EventData {
|
||||
public event!: string;
|
||||
public listener!: (event: string, args: any) => void;
|
||||
public obj: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量注册、移除全局事件对象
|
||||
*/
|
||||
export class MessageEventData {
|
||||
private events: any = {};
|
||||
|
||||
on(event: string, listener: (event: string, args: any) => void, thisObj: object) {
|
||||
let list: Array<EventData> = this.events[event];
|
||||
if (list == null) {
|
||||
list = [];
|
||||
this.events[event] = list;
|
||||
}
|
||||
let data: EventData = new EventData();
|
||||
data.event = event;
|
||||
data.listener = listener;
|
||||
data.obj = thisObj;
|
||||
list.push(data);
|
||||
|
||||
Message.on(event, listener, thisObj);
|
||||
}
|
||||
|
||||
off(event: string) {
|
||||
let ebs: Array<EventData> = this.events[event];
|
||||
if (!ebs) {
|
||||
return;
|
||||
}
|
||||
for (let eb of ebs) {
|
||||
Message.off(event, eb.listener, eb.obj);
|
||||
}
|
||||
delete this.events[event];
|
||||
}
|
||||
|
||||
dispatchEvent(event: string, arg: any = null) {
|
||||
Message.dispatchEvent(event, arg);
|
||||
}
|
||||
|
||||
removes() {
|
||||
for (let event in this.events) {
|
||||
this.off(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MessageManager {
|
||||
public static readonly Instance: MessageManager = new MessageManager();
|
||||
|
||||
private events: any = {};
|
||||
|
||||
/**
|
||||
* 注册全局事件
|
||||
* @param event(string) 事件名
|
||||
* @param listener(function) 处理事件的侦听器函数
|
||||
* @param thisObj(object) 侦听函数绑定的this对象
|
||||
*/
|
||||
on(event: string, listener: (event: string, args: any) => void, thisObj: object) {
|
||||
if (!event || !listener) {
|
||||
Logger.warning(`注册【${event}】事件的侦听器函数为空`);
|
||||
return;
|
||||
}
|
||||
|
||||
let list: Array<EventData> = this.events[event];
|
||||
if (list == null) {
|
||||
list = [];
|
||||
this.events[event] = list;
|
||||
}
|
||||
|
||||
let length = list.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
let bin = list[i];
|
||||
if (bin.listener == listener && bin.obj == thisObj) {
|
||||
Logger.warning(`名为【${event}】的事件重复注册侦听器`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let data: EventData = new EventData();
|
||||
data.event = event;
|
||||
data.listener = listener;
|
||||
data.obj = thisObj;
|
||||
list.push(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听一次事件,事件响应后,该监听自动移除
|
||||
* @param event
|
||||
* @param listener
|
||||
* @param thisObj
|
||||
*/
|
||||
once(event: string, listener: (event: string, args: any) => void, thisObj: object) {
|
||||
let _listener: any = ($event: string, $args: any) => {
|
||||
this.off(event, _listener, thisObj);
|
||||
_listener = null;
|
||||
listener.call(thisObj, $event, $args);
|
||||
}
|
||||
this.on(event, _listener, thisObj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除全局事件
|
||||
* @param event(string) 事件名
|
||||
* @param listener(function) 处理事件的侦听器函数
|
||||
* @param thisObj(object) 侦听函数绑定的this对象
|
||||
*/
|
||||
off(event: string, listener: Function, thisObj: object) {
|
||||
let list: Array<EventData> = this.events[event];
|
||||
|
||||
if (!list) {
|
||||
Logger.warning(`名为【${event}】的事件不存在`);
|
||||
return;
|
||||
}
|
||||
|
||||
let length = list.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
let bin: EventData = list[i];
|
||||
if (bin.listener == listener && bin.obj == thisObj) {
|
||||
list.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (list.length == 0) {
|
||||
delete this.events[event];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发全局事件
|
||||
* @param event(string) 事件名
|
||||
* @param arg(any) 事件参数
|
||||
*/
|
||||
dispatchEvent(event: string, arg: any = null) {
|
||||
let list: Array<EventData> = this.events[event];
|
||||
|
||||
if (list != null) {
|
||||
let temp: Array<EventData> = list.concat();
|
||||
let length = temp.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
let eventBin = temp[i];
|
||||
eventBin.listener.call(eventBin.obj, event, arg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const Message = MessageManager.Instance;
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "6ace47f5-502c-428e-a7b2-bdfbc4260c8d",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"moduleId": "project:///assets/script/core/event/MessageManager.js",
|
||||
"importerSettings": 4,
|
||||
"simulateGlobals": []
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "a1165588-934d-4c97-8fca-9f3547564f02",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
||||
@@ -1,199 +0,0 @@
|
||||
import { error, log, warn } from "cc";
|
||||
|
||||
export enum LogType {
|
||||
/** 网络层日志 */
|
||||
Net = 1,
|
||||
/** 数据结构层日志 */
|
||||
Model = 2,
|
||||
/** 业务逻辑层日志 */
|
||||
Business = 4,
|
||||
/** 视图层日志 */
|
||||
View = 8,
|
||||
/** 配置数据 */
|
||||
Config = 16,
|
||||
/** 登录日志 */
|
||||
Trace = 32,
|
||||
}
|
||||
|
||||
/** 日志管理 */
|
||||
export class Logger {
|
||||
private static tags: number = 0;
|
||||
|
||||
public static init(): void {
|
||||
this.tags =
|
||||
LogType.Net |
|
||||
LogType.Model |
|
||||
LogType.Business |
|
||||
LogType.View |
|
||||
LogType.Config |
|
||||
LogType.Trace;
|
||||
}
|
||||
|
||||
/** 开始计时 */
|
||||
public static start(): void {
|
||||
console.time("Time");
|
||||
}
|
||||
|
||||
/** 打印范围内时间消耗 */
|
||||
public static end(): void {
|
||||
console.timeEnd("Time");
|
||||
}
|
||||
|
||||
/** 打印表格 */
|
||||
public static table(msg: any, describe?: string): void {
|
||||
if (!this.isOpen(LogType.Trace)) {
|
||||
return;
|
||||
}
|
||||
console.table(msg);
|
||||
}
|
||||
|
||||
/** 无颜色日志 */
|
||||
public static trace(msg: any, describe?: string) {
|
||||
this.print(LogType.Trace, msg, "", describe)
|
||||
}
|
||||
|
||||
/** 网络层数据日志 */
|
||||
public static logNet(msg: any, describe?: string) {
|
||||
this.orange(LogType.Net, msg, describe);
|
||||
}
|
||||
|
||||
/** 客户端数据结构层日志 */
|
||||
public static logModel(msg: any, describe?: string) {
|
||||
this.violet(LogType.Model, msg, describe);
|
||||
}
|
||||
|
||||
/** 客户端数据结构层日志 */
|
||||
public static logBusiness(msg: any, describe?: string) {
|
||||
this.blue(LogType.Business, msg, describe);
|
||||
}
|
||||
|
||||
/** 客户端数据结构层日志 */
|
||||
public static logView(msg: any, describe?: string) {
|
||||
this.green(LogType.View, msg, describe);
|
||||
}
|
||||
|
||||
/** 客户端配置数据 */
|
||||
public static logConfig(msg: any, describe?: string) {
|
||||
this.gray(LogType.Config, msg, describe);
|
||||
}
|
||||
|
||||
public static erroring(msg: string) {
|
||||
error('[ERROR]' + msg);
|
||||
}
|
||||
|
||||
public static warning(msg: string) {
|
||||
warn('[WARN]:' + msg);
|
||||
}
|
||||
|
||||
// 橙色
|
||||
public static orange(tag: LogType, msg: any, describe?: string) {
|
||||
this.print(tag, msg, "color:#ee7700;", describe)
|
||||
}
|
||||
|
||||
// 紫色
|
||||
public static violet(tag: LogType, msg: any, describe?: string) {
|
||||
this.print(tag, msg, "color:Violet;", describe)
|
||||
}
|
||||
|
||||
// 蓝色
|
||||
public static blue(tag: LogType, msg: any, describe?: string) {
|
||||
this.print(tag, msg, "color:#3a5fcd;", describe)
|
||||
}
|
||||
|
||||
// 绿色
|
||||
public static green(tag: LogType, msg: any, describe?: string) {
|
||||
this.print(tag, msg, "color:green;", describe)
|
||||
}
|
||||
|
||||
// 灰色
|
||||
public static gray(tag: LogType, msg: any, describe?: string) {
|
||||
this.print(tag, msg, "color:gray;", describe)
|
||||
}
|
||||
|
||||
private static isOpen(tag: LogType): boolean {
|
||||
return (this.tags & tag) != 0;
|
||||
}
|
||||
|
||||
public static print(tag: LogType, msg: any, color: string, describe?: string) {
|
||||
// 标记没有打开,不打印该日志
|
||||
if (!this.isOpen(tag)) {
|
||||
return;
|
||||
}
|
||||
var backLog = console.log || log;
|
||||
if (describe) {
|
||||
backLog.call(null, "%c%s%s%s:%s%o", color, this.getDateString(), '[' + tag + ']', this.stack(5), describe, msg);
|
||||
}
|
||||
else {
|
||||
backLog.call(null, "%c%s%s%s:%o", color, this.getDateString(), '[' + tag + ']', this.stack(5), msg);
|
||||
}
|
||||
}
|
||||
|
||||
private static stack(index: number): string {
|
||||
var e = new Error();
|
||||
var lines = e.stack!.split("\n");
|
||||
var result: Array<any> = [];
|
||||
lines.forEach((line) => {
|
||||
line = line.substring(7);
|
||||
var lineBreak = line.split(" ");
|
||||
if (lineBreak.length < 2) {
|
||||
result.push(lineBreak[0]);
|
||||
}
|
||||
else {
|
||||
result.push({ [lineBreak[0]]: lineBreak[1] });
|
||||
}
|
||||
});
|
||||
|
||||
var list: string[] = [];
|
||||
var splitList: Array<string> = [];
|
||||
if (index < result.length - 1) {
|
||||
var value: string;
|
||||
for (var a in result[index]) {
|
||||
var splitList = a.split(".");
|
||||
|
||||
if (splitList.length == 2) {
|
||||
list = splitList.concat();
|
||||
}
|
||||
else {
|
||||
value = result[index][a];
|
||||
var start = value!.lastIndexOf("/");
|
||||
var end = value!.lastIndexOf(".");
|
||||
if (start > -1 && end > -1) {
|
||||
var r = value!.substring(start + 1, end);
|
||||
list.push(r);
|
||||
}
|
||||
else {
|
||||
list.push(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (list.length == 1) {
|
||||
return "[" + list[0] + ".ts]";
|
||||
}
|
||||
else if (list.length == 2) {
|
||||
return "[" + list[0] + ".ts->" + list[1] + "]";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static getDateString(): string {
|
||||
let d = new Date();
|
||||
let str = d.getHours().toString();
|
||||
let timeStr = "";
|
||||
timeStr += (str.length == 1 ? "0" + str : str) + ":";
|
||||
str = d.getMinutes().toString();
|
||||
timeStr += (str.length == 1 ? "0" + str : str) + ":";
|
||||
str = d.getSeconds().toString();
|
||||
timeStr += (str.length == 1 ? "0" + str : str) + ":";
|
||||
str = d.getMilliseconds().toString();
|
||||
if (str.length == 1) str = "00" + str;
|
||||
if (str.length == 2) str = "0" + str;
|
||||
timeStr += str;
|
||||
|
||||
timeStr = "[" + timeStr + "]";
|
||||
return timeStr;
|
||||
}
|
||||
}
|
||||
|
||||
Logger.init();
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "79a44851-f674-4a13-9a83-2a0b2cdc41eb",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component } from "cc";
|
||||
import { EventDispatcher } from "../event/EventDispatcher";
|
||||
import { EventDispatcher } from "../common/event/EventDispatcher";
|
||||
|
||||
export const guid = function () {
|
||||
let guid: string = "";
|
||||
|
||||
Reference in New Issue
Block a user