knight-web 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/frame/base/AbstractObject.d.ts +36 -0
- package/frame/base/AbstractPanel.d.ts +4 -0
- package/frame/base/index.d.ts +2 -0
- package/frame/core/Knight.d.ts +42 -0
- package/frame/core/Navgation.d.ts +26 -0
- package/frame/core/index.d.ts +2 -0
- package/frame/index.d.ts +3 -0
- package/frame/utility/BrowserUtility.d.ts +320 -0
- package/frame/utility/ConfigUtility.d.ts +33 -0
- package/frame/utility/CryptoUtility.d.ts +215 -0
- package/frame/utility/EnumUtility.d.ts +886 -0
- package/frame/utility/FileUtility.d.ts +31 -0
- package/frame/utility/InputUtility.d.ts +20 -0
- package/frame/utility/InterfaceUtility.d.ts +13 -0
- package/frame/utility/LogUtility.d.ts +44 -0
- package/frame/utility/MathUtility.d.ts +559 -0
- package/frame/utility/NetworkUtility.d.ts +155 -0
- package/frame/utility/ObjectUtility.d.ts +308 -0
- package/frame/utility/ProfilerUtility.d.ts +37 -0
- package/frame/utility/PromiseUtility.d.ts +89 -0
- package/frame/utility/ReflectionUtility.d.ts +316 -0
- package/frame/utility/StringUtility.d.ts +55 -0
- package/frame/utility/index.d.ts +15 -0
- package/index.d.ts +1 -0
- package/knight.js +63 -0
- package/knight.js.map +1 -0
- package/package.json +17 -0
- package/package/351/205/215/347/275/256/344/273/213/347/273/215.png +0 -0
- package/readme.md +36 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/** 网络工具 */
|
|
2
|
+
export declare namespace NetworkUtility {
|
|
3
|
+
/** 网络类 */
|
|
4
|
+
class NetWork {
|
|
5
|
+
/** HTTP网络协议 */
|
|
6
|
+
private _http;
|
|
7
|
+
/** HTTP网络协议 */
|
|
8
|
+
get HTTP(): HttpNetwork;
|
|
9
|
+
/** WebSocket网络协议 */
|
|
10
|
+
private _webSokcet;
|
|
11
|
+
/** WebSocket网络协议 */
|
|
12
|
+
get WebSokcet(): WebSocketNetWork;
|
|
13
|
+
/** 构造函数 */
|
|
14
|
+
constructor();
|
|
15
|
+
}
|
|
16
|
+
/** HTTP网络协议 */
|
|
17
|
+
class HttpNetwork {
|
|
18
|
+
/** 构造函数 */
|
|
19
|
+
constructor();
|
|
20
|
+
/**
|
|
21
|
+
* 网络请求
|
|
22
|
+
* @param _type 请求类型
|
|
23
|
+
* @param _url 格式: "http://192.168.1.1/aaa/bbb"或"https://192.168.1.1/aaa/bbb"
|
|
24
|
+
* @param _data 传递的数据
|
|
25
|
+
* @param _header 请求头
|
|
26
|
+
* @returns 返回请求的数据
|
|
27
|
+
*/
|
|
28
|
+
Request(_url: string, _option?: IRequest): Promise<IResponse>;
|
|
29
|
+
/** 网络请求执行器 */
|
|
30
|
+
private OnRequestExecutor;
|
|
31
|
+
/** 尝试解析响应数据 */
|
|
32
|
+
private OnTryParseResponse;
|
|
33
|
+
}
|
|
34
|
+
/** WebSocket网络协议 */
|
|
35
|
+
class WebSocketNetWork {
|
|
36
|
+
/** WebSocket套接字 */
|
|
37
|
+
private _websocket;
|
|
38
|
+
/** 心跳计数器 */
|
|
39
|
+
private _heartbeatCounter;
|
|
40
|
+
/** 心跳间隔 */
|
|
41
|
+
private _heartbeatInterval;
|
|
42
|
+
/** 心跳响应计数器 */
|
|
43
|
+
private _heartbeatResponseCounter;
|
|
44
|
+
/** 心跳超时次数 */
|
|
45
|
+
private _heartbeatTimeoutCount;
|
|
46
|
+
/** 心跳开关 */
|
|
47
|
+
private _heartbeatSwitch;
|
|
48
|
+
/** 打开回调事件 */
|
|
49
|
+
Evt_OnOpen: (_ws: WebSocketNetWork, _event?: Event) => void;
|
|
50
|
+
/** 关闭回调事件 */
|
|
51
|
+
Evt_OnClosed: (_ws: WebSocketNetWork, _event?: CloseEvent) => void;
|
|
52
|
+
/** 报错回调事件 */
|
|
53
|
+
Evt_OnError: (_ws: WebSocketNetWork, _event?: Event) => void;
|
|
54
|
+
/** 接收回调事件 */
|
|
55
|
+
Evt_OnReceive: (_ws: WebSocketNetWork, _event?: MessageEvent<any>) => void;
|
|
56
|
+
/** 心跳超时回调事件 */
|
|
57
|
+
Evt_OnHeartbeatTimeout: () => void;
|
|
58
|
+
/** 构造函数 */
|
|
59
|
+
constructor();
|
|
60
|
+
/** 开启连接 */
|
|
61
|
+
OnConnect(_url: string): void;
|
|
62
|
+
/** 客户端断开连接 */
|
|
63
|
+
OnDisConnect(): void;
|
|
64
|
+
/** 启动心跳 */
|
|
65
|
+
private OnStartHeartbeat;
|
|
66
|
+
/** 心跳逻辑 */
|
|
67
|
+
private OnHeartbeat;
|
|
68
|
+
/** 客户端打开连接 */
|
|
69
|
+
private OnOpen;
|
|
70
|
+
/** 客户端断开连接 */
|
|
71
|
+
OnClose(_event?: CloseEvent): void;
|
|
72
|
+
/** 客户端报错 */
|
|
73
|
+
private OnError;
|
|
74
|
+
/** 发送消息 */
|
|
75
|
+
OnSend(_data: string | Blob | ArrayBufferView | ArrayBufferLike): void;
|
|
76
|
+
/** 接收消息 */
|
|
77
|
+
private OnReceive;
|
|
78
|
+
}
|
|
79
|
+
/** 请求参数接口 */
|
|
80
|
+
interface IRequest {
|
|
81
|
+
/** 请求协议类型 */
|
|
82
|
+
method?: string | E_RequestType;
|
|
83
|
+
/** URL链接中的参数 */
|
|
84
|
+
params?: {
|
|
85
|
+
[key: string]: string;
|
|
86
|
+
};
|
|
87
|
+
/** 请求头 */
|
|
88
|
+
headers?: HeadersInit;
|
|
89
|
+
/** 请求体 */
|
|
90
|
+
body?: XMLHttpRequestBodyInit;
|
|
91
|
+
/** 设置请求的凭证 */
|
|
92
|
+
credentials?: RequestCredentials;
|
|
93
|
+
/** 设置请求的keepalive */
|
|
94
|
+
keepalive?: boolean;
|
|
95
|
+
/** 请求模式 */
|
|
96
|
+
mode?: RequestMode;
|
|
97
|
+
/** A string indicating how the request will interact with the browser's cache to set request's cache. */
|
|
98
|
+
cache?: RequestCache;
|
|
99
|
+
/** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */
|
|
100
|
+
integrity?: string;
|
|
101
|
+
priority?: "auto" | "high" | "low";
|
|
102
|
+
/** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */
|
|
103
|
+
redirect?: RequestRedirect;
|
|
104
|
+
/** A string whose value is a same-origin URL, "about:client", or the empty string, to set request's referrer. */
|
|
105
|
+
referrer?: string;
|
|
106
|
+
/** A referrer policy to set request's referrerPolicy. */
|
|
107
|
+
referrerPolicy?: ReferrerPolicy;
|
|
108
|
+
/** An AbortSignal to set request's signal. */
|
|
109
|
+
signal?: AbortSignal | null;
|
|
110
|
+
/** Can only be null. Used to disassociate request from any Window. */
|
|
111
|
+
window?: null;
|
|
112
|
+
}
|
|
113
|
+
/** 响应参数接口 */
|
|
114
|
+
interface IResponse {
|
|
115
|
+
/** 响应地址 */
|
|
116
|
+
responseURL?: string;
|
|
117
|
+
/** 相应数据类型(数据格式) */
|
|
118
|
+
responseType?: XMLHttpRequestResponseType;
|
|
119
|
+
/** 准备状态 */
|
|
120
|
+
readyState?: number;
|
|
121
|
+
/** 响应码 */
|
|
122
|
+
status?: number;
|
|
123
|
+
/** 响应码(字符串格式) */
|
|
124
|
+
statusText?: string;
|
|
125
|
+
/** 响应信息 */
|
|
126
|
+
/** 是否携带Cookie */
|
|
127
|
+
withCredentials?: boolean;
|
|
128
|
+
/** 超时时间(ms) */
|
|
129
|
+
timeout?: number;
|
|
130
|
+
/** 响应数据 */
|
|
131
|
+
response?: any;
|
|
132
|
+
/** 响应数据(字符串格式) */
|
|
133
|
+
responseText?: string;
|
|
134
|
+
/** 响应数据(文档格式) */
|
|
135
|
+
responseXML?: Document | null;
|
|
136
|
+
/** 准备状态变更事件 */
|
|
137
|
+
onreadystatechange?: ((this: XMLHttpRequest, ev: Event) => any) | null;
|
|
138
|
+
/** 获取所有响应请求头 */
|
|
139
|
+
getAllResponseHeaders?(): string;
|
|
140
|
+
/** 响应数据转换 */
|
|
141
|
+
ParseResponse?<T>(): T;
|
|
142
|
+
}
|
|
143
|
+
/** 请求类型 */
|
|
144
|
+
enum E_RequestType {
|
|
145
|
+
All = "all",
|
|
146
|
+
Get = "get",
|
|
147
|
+
Post = "post",
|
|
148
|
+
Put = "put",
|
|
149
|
+
Delete = "delete",
|
|
150
|
+
Patch = "patch",
|
|
151
|
+
Options = "options",
|
|
152
|
+
Head = "head",
|
|
153
|
+
Search = "search"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/*********************************************************************************
|
|
2
|
+
* FileName : ObjectPool
|
|
3
|
+
* FileBasename : ObjectPool.ts
|
|
4
|
+
* Author : Seven_9t
|
|
5
|
+
* Date : Sat Mar 25 2023 15:05:05 GMT+0800 (中国标准时间)
|
|
6
|
+
* Description : db://assets/frame/script/base/ObjectPool.ts
|
|
7
|
+
* Version : v3.6
|
|
8
|
+
* Others : 修改默认TS脚本模板路径 D:\Cocos\CocosDashboard\resources\.editors\Creator\<Version>\resources\resources\3d\engine\editor\assets\default_file_content\ts
|
|
9
|
+
* ManualUrl : <指南手册> https://docs.cocos.com/creator/3.6/manual/zh/
|
|
10
|
+
* : <脚本手册> https://docs.cocos.com/creator/3.6/manual/zh/scripting/
|
|
11
|
+
* : <接口手册> https://docs.cocos.com/creator/api/zh/#/docs/3.6/zh/README
|
|
12
|
+
* : <生命周期手册>https://docs.cocos.com/creator/3.6/manual/zh/scripting/life-cycle-callbacks.html
|
|
13
|
+
|
|
14
|
+
**********************************************************************************/
|
|
15
|
+
import { InterfaceUtility } from "./InterfaceUtility";
|
|
16
|
+
/** 对象工具 */
|
|
17
|
+
export declare namespace ObjectUtility {
|
|
18
|
+
/** 空对象类 */
|
|
19
|
+
export class EmptyObject {
|
|
20
|
+
}
|
|
21
|
+
/** 获取对象所有属性 */
|
|
22
|
+
export function GetPropertys<T>(_object: T): Array<string>;
|
|
23
|
+
/** 检测对象属性是否存在 */
|
|
24
|
+
export function HasProperty(_object: object, _propertyKey: string): boolean;
|
|
25
|
+
/** 是否是对象 */
|
|
26
|
+
export function IsObject(_target: any): boolean;
|
|
27
|
+
/** 是否是数组 */
|
|
28
|
+
export function IsArray(_target: any): boolean;
|
|
29
|
+
/** 是否是函数 */
|
|
30
|
+
export function IsFunction(_target: any): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 判断是否继承自基类
|
|
33
|
+
* @param _target 目标对象实例
|
|
34
|
+
* @param _className 基类类名
|
|
35
|
+
* @returns 匹配结果
|
|
36
|
+
*/
|
|
37
|
+
export function InstanceOf(_target: object, _className: string): boolean;
|
|
38
|
+
/** 克隆对象 */
|
|
39
|
+
export function Clone<T>(_target: T, ...params: any[]): T;
|
|
40
|
+
/** 克隆并赋值 */
|
|
41
|
+
export function CloneAssign<T>(_target: T, ...params: any[]): T;
|
|
42
|
+
/** 数据赋值 */
|
|
43
|
+
export function Assign<T extends object>(_target: T, _source: Partial<object>): T;
|
|
44
|
+
/**
|
|
45
|
+
* 将对象序列化为Json字符串
|
|
46
|
+
* @param _object 一个JavaScript值,通常是要转换的对象或数组。
|
|
47
|
+
* @param _replacer 转换结果的函数。
|
|
48
|
+
* @param _space 在返回值JSON文本中添加缩进、空白和换行字符,使其更易于阅读。
|
|
49
|
+
* @returns 序列化后对象(需要自行转JSON.stringify)
|
|
50
|
+
*/
|
|
51
|
+
export function Encode(_object: object, _replacer?: (this: any, key: string, value: any) => any, _space?: string | number): Record<string, any>;
|
|
52
|
+
/** 将Json字符串反序列化为对象(对象带有函数则无效,需要执行浅拷贝或深拷贝) */
|
|
53
|
+
export function Decode<T extends object>(_target: InterfaceUtility.IType<T>, _source: T, ...params: any[]): T;
|
|
54
|
+
/** 浅拷贝 */
|
|
55
|
+
export function ShallowCopy<T extends object>(_target: InterfaceUtility.IType<T>, _source: T, ...params: any[]): T;
|
|
56
|
+
/** 深拷贝 */
|
|
57
|
+
export function DeepCopy<T extends object>(_target: InterfaceUtility.IType<T>, _source: T, ...params: any[]): T;
|
|
58
|
+
/** 深拷贝 TODO */
|
|
59
|
+
export function Deep(_target: any, _bitmask: boolean): any;
|
|
60
|
+
/** 深拷贝数组 */
|
|
61
|
+
export function DeepCopyArray(_target: any): any;
|
|
62
|
+
/** 对象操作泛型接口 */
|
|
63
|
+
interface IObjectOperation<T> {
|
|
64
|
+
/** 获取数量 */
|
|
65
|
+
get Count(): number;
|
|
66
|
+
/** 获取对象 */
|
|
67
|
+
Get(_key: number | string): T;
|
|
68
|
+
/** 获取对象组 */
|
|
69
|
+
Gets(_keys: Array<number | string>): Array<T>;
|
|
70
|
+
/** 获取所有对象 */
|
|
71
|
+
GetAll(): Array<T> | Map<string, T>;
|
|
72
|
+
/** 添加对象实例 */
|
|
73
|
+
Add(..._param: any[]): boolean;
|
|
74
|
+
/** 移除对象实例 */
|
|
75
|
+
Remove(_t: number | string | T): boolean;
|
|
76
|
+
/** 移除所有对象实例 */
|
|
77
|
+
RemoveAll(): void;
|
|
78
|
+
/** 对象实例是否存在 */
|
|
79
|
+
Exist(_t: number | string | T): boolean;
|
|
80
|
+
}
|
|
81
|
+
/** 对象池<数组> */
|
|
82
|
+
export class ArrayPool<T extends object | any> implements IObjectOperation<T> {
|
|
83
|
+
/** 对象池 */
|
|
84
|
+
private _tPools;
|
|
85
|
+
/** 构造函数 */
|
|
86
|
+
constructor();
|
|
87
|
+
/** 获取数量 */
|
|
88
|
+
get Count(): number;
|
|
89
|
+
/** 获取对象 */
|
|
90
|
+
Get<K extends T>(_index: number): K;
|
|
91
|
+
/** 获取对象组 */
|
|
92
|
+
Gets<K extends T>(_indexs: Array<number>): Array<K>;
|
|
93
|
+
/** 获取所有对象 */
|
|
94
|
+
GetAll(): Array<T>;
|
|
95
|
+
/** 添加对象实例 */
|
|
96
|
+
Add(_t: T): boolean;
|
|
97
|
+
/** 移除对象实例 */
|
|
98
|
+
Remove(_t: T | number): boolean;
|
|
99
|
+
/** 移除所有对象实例 */
|
|
100
|
+
RemoveAll(): void;
|
|
101
|
+
/** 对象实例是否存在 */
|
|
102
|
+
Exist(_t: T | number): boolean;
|
|
103
|
+
}
|
|
104
|
+
/** 对象池<字典> */
|
|
105
|
+
export class MapPool<T extends object> implements IObjectOperation<T> {
|
|
106
|
+
/** 对象池 */
|
|
107
|
+
private _tPools;
|
|
108
|
+
/** 构造函数 */
|
|
109
|
+
constructor(_map?: Map<string, T>);
|
|
110
|
+
/** 获取数量 */
|
|
111
|
+
get Count(): number;
|
|
112
|
+
/** 获取对象 */
|
|
113
|
+
Get<K extends T>(_key: string): K;
|
|
114
|
+
/** 获取对象组 */
|
|
115
|
+
Gets<K extends T>(_keys: Array<string>): Array<K>;
|
|
116
|
+
/** 获取所有对象 */
|
|
117
|
+
GetAll(): Map<string, T>;
|
|
118
|
+
/** 添加对象实例 */
|
|
119
|
+
Add(_key: string, _t: T): boolean;
|
|
120
|
+
/** 设置对象 */
|
|
121
|
+
Set<K extends T>(_key: string, _t: T): K;
|
|
122
|
+
/** 移除对象实例 */
|
|
123
|
+
Remove(_key: string): boolean;
|
|
124
|
+
/** 移除所有对象实例 */
|
|
125
|
+
RemoveAll(): void;
|
|
126
|
+
/** 对象实例是否存在 */
|
|
127
|
+
Exist(_t: string): boolean;
|
|
128
|
+
/** 所有键转数组 */
|
|
129
|
+
KeysToArray(): Array<string>;
|
|
130
|
+
/** 所有值转数组 */
|
|
131
|
+
ValuesToArray(): Array<T>;
|
|
132
|
+
}
|
|
133
|
+
/** 队列池<队列> */
|
|
134
|
+
export class QueuePool<T extends object> {
|
|
135
|
+
/** 队列数组 */
|
|
136
|
+
private _tPools;
|
|
137
|
+
constructor();
|
|
138
|
+
/** 入队 */
|
|
139
|
+
Enqueue(_t: T): void;
|
|
140
|
+
/** 出队 */
|
|
141
|
+
Dequeue(): T | undefined;
|
|
142
|
+
/** 查看队首元素 */
|
|
143
|
+
Peek(): T | undefined;
|
|
144
|
+
/** 判断队列是否为空 */
|
|
145
|
+
IsEmpty(): boolean;
|
|
146
|
+
/** 获取队列大小 */
|
|
147
|
+
Size(): number;
|
|
148
|
+
/** 清空队列 */
|
|
149
|
+
Clear(): void;
|
|
150
|
+
/** 克隆 */
|
|
151
|
+
Clone(): Array<T>;
|
|
152
|
+
}
|
|
153
|
+
/** 管线 */
|
|
154
|
+
export class PipeLine<T extends object> {
|
|
155
|
+
/** 事件管线 */
|
|
156
|
+
private _tPools;
|
|
157
|
+
/** 管线是否已启动 */
|
|
158
|
+
private _isStarted;
|
|
159
|
+
/** 管线是否已启动 */
|
|
160
|
+
private _isEnded;
|
|
161
|
+
/** 开关 */
|
|
162
|
+
private _switch;
|
|
163
|
+
constructor();
|
|
164
|
+
/** 获取数量 */
|
|
165
|
+
get Count(): number;
|
|
166
|
+
/** 注册事件 */
|
|
167
|
+
Register(_pipeline: ((_params: T) => Promise<T>) | PipeLine<T>): boolean;
|
|
168
|
+
/** 注销事件 */
|
|
169
|
+
Degister(_pipeline: ((_params: T) => Promise<T>) | PipeLine<T>): boolean;
|
|
170
|
+
/** 启动事件 */
|
|
171
|
+
Start(_params: T): Promise<T>;
|
|
172
|
+
/** 停止事件 */
|
|
173
|
+
Stop(): void;
|
|
174
|
+
}
|
|
175
|
+
/** 委托接口 */
|
|
176
|
+
export interface IDelegate {
|
|
177
|
+
/** 注册 */
|
|
178
|
+
Register(_key: string, _callback: InterfaceUtility.IEvent, _target: any, _times: number): boolean;
|
|
179
|
+
/** 注销 */
|
|
180
|
+
Degister(_key: string, _callback: InterfaceUtility.IEvent, _target: any): boolean;
|
|
181
|
+
/** 通知 */
|
|
182
|
+
Invoke(_key: string, ...params: Array<any>): Promise<void>;
|
|
183
|
+
/** 清除 */
|
|
184
|
+
Clear(): void;
|
|
185
|
+
}
|
|
186
|
+
/** 委托池(多绑定) */
|
|
187
|
+
export class DelegateMultiplePool implements IDelegate {
|
|
188
|
+
/** 对象池 */
|
|
189
|
+
private _tPools;
|
|
190
|
+
/** 构造函数 */
|
|
191
|
+
constructor();
|
|
192
|
+
/**
|
|
193
|
+
* 注册监听事件
|
|
194
|
+
* @param _key 事件名称
|
|
195
|
+
* @param _event 回调函数
|
|
196
|
+
* @param _target 绑定对象
|
|
197
|
+
* @param _times 执行次数
|
|
198
|
+
*/
|
|
199
|
+
Register(_key: string, _event: InterfaceUtility.IEvent, _times?: number): boolean;
|
|
200
|
+
/**
|
|
201
|
+
* 移除监听事件
|
|
202
|
+
* @param _key 事件名称
|
|
203
|
+
* @param _event 回调函数
|
|
204
|
+
* @param _target 绑定对象
|
|
205
|
+
*/
|
|
206
|
+
Degister(_key: string, _event: InterfaceUtility.IEvent): boolean;
|
|
207
|
+
/**
|
|
208
|
+
* 派发监听事件
|
|
209
|
+
* @param _key 事件名称
|
|
210
|
+
* @param _params 回调参数
|
|
211
|
+
*/
|
|
212
|
+
Invoke<T>(_key: string, ..._params: Array<any>): Promise<void>;
|
|
213
|
+
/** 清空所有事件 */
|
|
214
|
+
Clear(): void;
|
|
215
|
+
}
|
|
216
|
+
/** 委托池(单绑定) */
|
|
217
|
+
export class DelegateSinglePool implements IDelegate {
|
|
218
|
+
/** 对象池 */
|
|
219
|
+
private _tPools;
|
|
220
|
+
/** 构造函数 */
|
|
221
|
+
constructor();
|
|
222
|
+
/**
|
|
223
|
+
* 注册监听事件
|
|
224
|
+
* @param _key 事件名称
|
|
225
|
+
* @param _event 回调函数
|
|
226
|
+
* @param _target 绑定对象
|
|
227
|
+
* @param _times 执行次数
|
|
228
|
+
*/
|
|
229
|
+
Register(_key: string, _event: InterfaceUtility.IEvent, _target: any, _times?: number): boolean;
|
|
230
|
+
/**
|
|
231
|
+
* 移除监听事件
|
|
232
|
+
* @param _key 事件名称
|
|
233
|
+
* @param _target 绑定对象
|
|
234
|
+
* @param _event 回调函数
|
|
235
|
+
*/
|
|
236
|
+
Degister(_key: string, _event: InterfaceUtility.IEvent, _target: any): boolean;
|
|
237
|
+
/**
|
|
238
|
+
* 派发监听事件
|
|
239
|
+
* @param _key 事件名称
|
|
240
|
+
* @param _params 回调函数参数
|
|
241
|
+
*/
|
|
242
|
+
Invoke<T>(_key: string, ..._params: Array<any>): Promise<void>;
|
|
243
|
+
/** 清空所有事件 */
|
|
244
|
+
Clear(): void;
|
|
245
|
+
}
|
|
246
|
+
/** 反射池<字典> */
|
|
247
|
+
export class ReflectionPool<T> {
|
|
248
|
+
/** 反射池 */
|
|
249
|
+
private _reflectionPool;
|
|
250
|
+
/** 构造函数 */
|
|
251
|
+
constructor();
|
|
252
|
+
/** 获取数量 */
|
|
253
|
+
get Count(): number;
|
|
254
|
+
/** 获取反射类型 */
|
|
255
|
+
GetObject(_key: string): InterfaceUtility.IType<T>;
|
|
256
|
+
/** 获取类型 */
|
|
257
|
+
GetType(_key: string): InterfaceUtility.IType<T>;
|
|
258
|
+
/** 获取所有反射类型 */
|
|
259
|
+
GetObjects(): Map<string, InterfaceUtility.IType<T>>;
|
|
260
|
+
/** 创建反射实例 */
|
|
261
|
+
CreatInstance<K extends T>(_key: string, ...params: any[]): K;
|
|
262
|
+
/** 添加反射类型 */
|
|
263
|
+
Add(_key: string, _t: InterfaceUtility.IType<T>): boolean;
|
|
264
|
+
/** 移除反射类型 */
|
|
265
|
+
Remove(_key: string): boolean;
|
|
266
|
+
/** 移除所有反射类型 */
|
|
267
|
+
RemoveAll(): void;
|
|
268
|
+
/** 反射类型是否存在 */
|
|
269
|
+
Exist(_key: string): boolean;
|
|
270
|
+
}
|
|
271
|
+
/** 事件系统 */
|
|
272
|
+
export class EventSystem {
|
|
273
|
+
/** 目标对象管理池 */
|
|
274
|
+
private _objects;
|
|
275
|
+
constructor(_objects: ObjectUtility.MapPool<object>);
|
|
276
|
+
/** 事务映射池 */
|
|
277
|
+
private static _delegateMappingPool;
|
|
278
|
+
/**
|
|
279
|
+
* 添加事件装饰器
|
|
280
|
+
* @param _key 触发主键
|
|
281
|
+
* @param _times 触发次数
|
|
282
|
+
* @params 提示:绑定的函数回参:OnName(sender:object,...params[])
|
|
283
|
+
*/
|
|
284
|
+
static Decorator(_key: string, _times?: number): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
285
|
+
/**
|
|
286
|
+
* 派发(广播)事件
|
|
287
|
+
* @param _sender 派发者
|
|
288
|
+
* @param _key 事件Key
|
|
289
|
+
* @param params 透传参数
|
|
290
|
+
* @returns 触发结果
|
|
291
|
+
*/
|
|
292
|
+
Invoke(_sender: object, _key: string, ...params: Array<any>): void;
|
|
293
|
+
/** 获取所有事件 */
|
|
294
|
+
GetAll(): ObjectUtility.ArrayPool<IDelegateEvent>;
|
|
295
|
+
}
|
|
296
|
+
/** 委托事件接口 */
|
|
297
|
+
export interface IDelegateEvent {
|
|
298
|
+
/** 派发键 */
|
|
299
|
+
key: string;
|
|
300
|
+
/** 派发类名 */
|
|
301
|
+
className: string;
|
|
302
|
+
/** 派发事件名 */
|
|
303
|
+
eventName: string;
|
|
304
|
+
/** 派发次数 */
|
|
305
|
+
times: number;
|
|
306
|
+
}
|
|
307
|
+
export {};
|
|
308
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** 分析器工具 */
|
|
2
|
+
export declare class ProfilerUtility {
|
|
3
|
+
private _container;
|
|
4
|
+
private _fpsPanel;
|
|
5
|
+
get FPSCanvas(): HTMLCanvasElement;
|
|
6
|
+
private _msPanel;
|
|
7
|
+
get MSCanvas(): HTMLCanvasElement;
|
|
8
|
+
private _memoryPanel;
|
|
9
|
+
get MemoryCanvas(): HTMLCanvasElement;
|
|
10
|
+
/** 构造函数 */
|
|
11
|
+
constructor(_parent: HTMLElement);
|
|
12
|
+
OnSecondUpdate(_delta: number, _fps: number): void;
|
|
13
|
+
}
|
|
14
|
+
export declare class Panel {
|
|
15
|
+
private name;
|
|
16
|
+
private min;
|
|
17
|
+
private max;
|
|
18
|
+
private PR;
|
|
19
|
+
private WIDTH;
|
|
20
|
+
private HEIGHT;
|
|
21
|
+
private TEXT_X;
|
|
22
|
+
private TEXT_Y;
|
|
23
|
+
private GRAPH_X;
|
|
24
|
+
private GRAPH_Y;
|
|
25
|
+
private GRAPH_WIDTH;
|
|
26
|
+
private GRAPH_HEIGHT;
|
|
27
|
+
private fg;
|
|
28
|
+
private bg;
|
|
29
|
+
private canvas;
|
|
30
|
+
get Canvas(): HTMLCanvasElement;
|
|
31
|
+
private context;
|
|
32
|
+
private result;
|
|
33
|
+
get Result(): number;
|
|
34
|
+
constructor(name: string, fg: string, bg: string);
|
|
35
|
+
Enable(_enable: boolean): void;
|
|
36
|
+
update(value: number, maxValue: number): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/** 异步工具 */
|
|
2
|
+
export declare namespace PromiseUtility {
|
|
3
|
+
/** 异步拓展类 */
|
|
4
|
+
class PromiseEx {
|
|
5
|
+
/** 自定义Promise带参异步函数 */
|
|
6
|
+
static Promise<T>(_executor: IExecutor<T>, ..._params: any[]): Promise<MyPromise<T>>;
|
|
7
|
+
/** 原生Promise带参异步函数 */
|
|
8
|
+
static OrigionPromise<T>(_executor: IExecutor<T>, ..._params: any[]): Promise<T>;
|
|
9
|
+
/** 等待时间 */
|
|
10
|
+
static WaitTime(_time: number): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/** Primise异步工具
|
|
13
|
+
* 一、Pomise解决的问题:
|
|
14
|
+
* 1:解决回调地狱,可读性变好
|
|
15
|
+
* 2:promise可以支持多个并发的请求,获取并发请求中的数据
|
|
16
|
+
* 3:可以处理异常
|
|
17
|
+
* 4:使用发布/订阅模式处理异步问题,全局变量难以维护,变量名冲突的问题
|
|
18
|
+
* 二、Promise规范
|
|
19
|
+
* 1:promise是一个拥有then方法的对象或者函数
|
|
20
|
+
* then方法相当于观察者模式中的订阅,所以这就是为什么then需要传入函数
|
|
21
|
+
* 2:promise有三种状态,只能从等待状态到成功或者失败()
|
|
22
|
+
* 为什么要有三种状态?防止多次调用,因为你如果调用两次resolve,那么只能以第一次的为准,第一次resolve后,状态直接就变为SUCCESS,那么也就不会在执行后面的reslove了
|
|
23
|
+
* 3:then方法返回一个新的promise对象
|
|
24
|
+
* 为什么要返回promise,为了支持链式调用
|
|
25
|
+
* 4:promise初始化传入一个函数,函数上有两个参数,resolve,reject,他们也都是函数
|
|
26
|
+
* promise中的resolve,reject也就相当于观察者模式中的notify
|
|
27
|
+
*/
|
|
28
|
+
class MyPromise<T> {
|
|
29
|
+
/** 状态 */
|
|
30
|
+
private _state;
|
|
31
|
+
/** 成功时的回调函数 */
|
|
32
|
+
private _onSuccessedCbs;
|
|
33
|
+
/** 失败时的回调函数 */
|
|
34
|
+
private _onFailedCbs;
|
|
35
|
+
/** Promise传递的值 */
|
|
36
|
+
private _value;
|
|
37
|
+
/** 表示Promise失败原因的值 */
|
|
38
|
+
private _reason;
|
|
39
|
+
/** 构造函数 */
|
|
40
|
+
constructor(_executor: IExecutor<T>, ..._params: any[]);
|
|
41
|
+
/** 解决 */
|
|
42
|
+
private resolve;
|
|
43
|
+
/** 拒绝 */
|
|
44
|
+
private reject;
|
|
45
|
+
/** 然后 */
|
|
46
|
+
then<TResult1 = T, TResult2 = never>(_onSuccessed?: ((_value: T | IPromiseLike<T>) => TResult1 | IPromiseLike<TResult1>) | undefined | null, _onFailed?: ((_reason: any) => TResult2 | IPromiseLike<TResult2>) | undefined | null): MyPromise<TResult1 | TResult2>;
|
|
47
|
+
private resolvePromise;
|
|
48
|
+
}
|
|
49
|
+
/** Promise状态枚举 */
|
|
50
|
+
enum E_PromiseState {
|
|
51
|
+
/** 等待状态
|
|
52
|
+
* 此时该 Promise 的结果是悬而未决的,不知道会被 resolve,或是被 reject。
|
|
53
|
+
* 只有当 Promise 的状态为 PENDING 时,resolve 和 reject 函数才可以执行一系列操作,否则只会抛出一个错误。
|
|
54
|
+
*/
|
|
55
|
+
Pending = "pending",
|
|
56
|
+
/** 成功状态
|
|
57
|
+
* 说明此时 Promise 已经被 resolve,“承诺实现了”。
|
|
58
|
+
* 当 Promise 的状态为 FULFILLED 时,then 方法传入的 onFullfilled 函数才能直接加入微任务队列;
|
|
59
|
+
* 若当前 Promise 的状态为 PENDING,onFullfilled 函数只能加入成功时的回调函数队列。
|
|
60
|
+
*/
|
|
61
|
+
Success = "success",
|
|
62
|
+
/** 失败状态
|
|
63
|
+
* 说明此时 Promise 已经被 reject,
|
|
64
|
+
* 当 Promise 的状态为 REJECTED 时,then 方法传入的 onRejected 函数才能直接加入微任务队列;
|
|
65
|
+
* 若当前 Promise 的状态为 PENDING,onRejected 函数只能加入失败时的回调函数队列。
|
|
66
|
+
*/
|
|
67
|
+
Fail = "fail"
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Promises/A+ 只是一份规范,任何能通过测试的 Promise 实现都会被这份规范认可,而一些库和框架会实现自己的 Promise,而不是使用原生 ES6 Promise,这就导致了无法直接使用 p instanceof Promise 来识别 Promise类型。
|
|
71
|
+
* 因此识别 Promise 是基于鸭子类型(duck typing)检测的,只要是一个 thenable 对象(即定义了 then 方法的对象),即会被识别为 Promise。
|
|
72
|
+
* 同理,下文中 resolvePromise 函数的参数 x 是 PromiseLike 类型而不是 Promise 类型。
|
|
73
|
+
*/
|
|
74
|
+
interface IPromiseLike<T> {
|
|
75
|
+
then<TResult1 = T, TResult2 = never>(onFulfilled?: ((value: T | PromiseLike<T>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
|
|
76
|
+
}
|
|
77
|
+
/** 同步执行的执行器回调函数接口(Promise异步相关) */
|
|
78
|
+
interface IExecutor<T> {
|
|
79
|
+
(_resolve: IResolve<T>, _reject: IReject, ..._params: any[]): void;
|
|
80
|
+
}
|
|
81
|
+
/** 同步执行的成功时回调函数接口(Promise异步相关) */
|
|
82
|
+
interface IResolve<T> {
|
|
83
|
+
(_value?: T | IPromiseLike<T>): void;
|
|
84
|
+
}
|
|
85
|
+
/** 同步执行的失败时回调函数接口(Promise异步相关) */
|
|
86
|
+
interface IReject {
|
|
87
|
+
(_reason?: any): void;
|
|
88
|
+
}
|
|
89
|
+
}
|