dzkcc-mflow 0.0.1 → 0.0.2

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.
Files changed (48) hide show
  1. package/dist/App.d.ts +22 -22
  2. package/dist/App.js +27 -27
  3. package/dist/_virtual/_tslib.js +30 -30
  4. package/dist/core/Api.d.ts +53 -53
  5. package/dist/core/Core.d.ts +18 -18
  6. package/dist/core/Core.js +78 -78
  7. package/dist/core/Decorators.d.ts +7 -7
  8. package/dist/core/Decorators.js +99 -99
  9. package/dist/core/ICocosResManager.d.ts +11 -11
  10. package/dist/core/ServiceLocator.d.ts +7 -7
  11. package/dist/core/ServiceLocator.js +31 -31
  12. package/dist/core/index.d.ts +5 -5
  13. package/dist/libs/BaseView.d.ts +21 -21
  14. package/dist/libs/BaseView.js +78 -78
  15. package/dist/libs/Broadcaster.d.ts +101 -101
  16. package/dist/libs/Broadcaster.js +240 -240
  17. package/dist/libs/CocosCore.d.ts +5 -5
  18. package/dist/libs/CocosCore.js +16 -16
  19. package/dist/libs/ResLoader.d.ts +10 -10
  20. package/dist/libs/ResLoader.js +76 -74
  21. package/dist/libs/UIManager.d.ts +34 -34
  22. package/dist/libs/UIManager.js +251 -251
  23. package/dist/libs/UIRoot.d.ts +4 -4
  24. package/dist/libs/UIRoot.js +4 -4
  25. package/dist/libs/index.d.ts +6 -6
  26. package/dist/mflow-tools.zip +0 -0
  27. package/dist/utils/ArrayExt.d.ts +67 -67
  28. package/dist/utils/ArrayExt.js +298 -298
  29. package/dist/utils/ArrayUtil.d.ts +41 -41
  30. package/dist/utils/ArrayUtil.js +93 -93
  31. package/dist/utils/CameraUtil.d.ts +10 -10
  32. package/dist/utils/CameraUtil.js +23 -23
  33. package/dist/utils/ImageUtil.d.ts +33 -33
  34. package/dist/utils/ImageUtil.js +92 -92
  35. package/dist/utils/MathUtil.d.ts +213 -213
  36. package/dist/utils/MathUtil.js +435 -435
  37. package/dist/utils/ObjectUtil.d.ts +24 -24
  38. package/dist/utils/ObjectUtil.js +58 -58
  39. package/dist/utils/PlatformUtil.d.ts +9 -9
  40. package/dist/utils/PlatformUtil.js +27 -27
  41. package/dist/utils/RotateUtil.d.ts +30 -30
  42. package/dist/utils/RotateUtil.js +63 -63
  43. package/dist/utils/StringUtil.d.ts +107 -107
  44. package/dist/utils/StringUtil.js +249 -249
  45. package/dist/utils/TimeUtil.d.ts +31 -31
  46. package/dist/utils/TimeUtil.js +85 -85
  47. package/dist/utils/index.d.ts +9 -9
  48. package/package.json +1 -1
@@ -1,246 +1,246 @@
1
1
  import { ObjectUtil } from '../utils/ObjectUtil.js';
2
2
  import { StringUtil } from '../utils/StringUtil.js';
3
3
 
4
- class Broadcaster {
5
- constructor() {
6
- this._persistBrodcastMap = {};
7
- this._listenerHandlerMap = {};
8
- this._stickBrodcastMap = {};
9
- this._unuseHandlers = [];
10
- }
11
- /**
12
- * 回收handler
13
- * @param handler
14
- */
15
- _recoverHandler(handler) {
16
- if (!handler)
17
- return;
18
- //@ts-ignore
19
- handler.listener = undefined;
20
- handler.key = undefined;
21
- handler.args = undefined;
22
- handler.context = undefined;
23
- this._unuseHandlers.push(handler);
24
- }
25
- //检查是否有有效的监听器,如果没有就删除这个key
26
- _checkListenerValidity(key) {
27
- if (!key)
28
- return;
29
- const handlers = this._listenerHandlerMap[key];
30
- if (handlers && handlers.length > 0) {
31
- return;
32
- }
33
- delete this._listenerHandlerMap[key];
34
- }
35
- /**
36
- * 添加广播监听,如果有粘性广播就会执行粘性广播
37
- * @param handler
38
- */
39
- _addHandler(handler) {
40
- const handlerMap = this._listenerHandlerMap;
41
- const msgKey = handler.key;
42
- const handlers = handlerMap[msgKey] || [];
43
- handlers.push(handler);
44
- handlerMap[msgKey] = handlers;
45
- //检查是否有粘性广播
46
- const stickyHandlers = this._stickBrodcastMap[msgKey];
47
- if (stickyHandlers) {
48
- //需要把执行过的粘性广播删除,防止注册时再次执行
49
- this.removeStickyBroadcast(msgKey);
50
- for (let i = 0; i < stickyHandlers.length; i++) {
51
- let e = stickyHandlers[i];
52
- this.dispatch(msgKey, e.data, e.callback, e.persistence);
53
- }
54
- }
55
- }
56
- /**
57
- * 将广播的数据作为参数,执行广播监听器的逻辑
58
- * @param handler 广播监听器
59
- * @param data 广播携带的数据
60
- * @param callback 回调函数
61
- */
62
- _runHandler(handler, data, callback) {
63
- if (!handler.listener)
64
- return;
65
- let args = [];
66
- if (data) {
67
- args.push(data);
68
- }
69
- if (callback) {
70
- data.push(callback);
71
- }
72
- //如果有透传参数,则添加到参数列表中
73
- if (handler.args && handler.args.length > 0) {
74
- args.push(...handler.args);
75
- }
76
- return handler.listener.apply(handler.context, args);
77
- }
78
- _onHander(keyOrHandler, listener, context, once, args) {
79
- if (typeof keyOrHandler === "string") {
80
- if (!listener)
81
- return;
82
- let handlerObj = this._unuseHandlers.pop() || {};
83
- handlerObj.key = keyOrHandler;
84
- handlerObj.listener = listener;
85
- handlerObj.context = context;
86
- handlerObj.once = once;
87
- handlerObj.args = args;
88
- this._addHandler(handlerObj);
89
- }
90
- else {
91
- if (ObjectUtil.isArray(keyOrHandler)) {
92
- const handlers = keyOrHandler;
93
- for (let i = 0; i < handlers.length; i++) {
94
- this._addHandler(handlers[i]);
95
- }
96
- }
97
- else {
98
- this._addHandler(keyOrHandler);
99
- }
100
- }
101
- }
102
- on(keyOrHandler, listener, context, args) {
103
- this._onHander(keyOrHandler, listener, context, false, args);
104
- }
105
- once(keyOrHandler, listener, context, args) {
106
- this._onHander(keyOrHandler, listener, context, true, args);
107
- }
108
- /**
109
- * 注销指定监听
110
- * @param key 事件名
111
- * @param listener 监听回调
112
- * @return this
113
- */
114
- off(key, listener) {
115
- let handlers = this._listenerHandlerMap[key];
116
- if (!handlers) {
117
- throw new Error(`没有找到key为${key.toString()}的事件`);
118
- }
119
- const index = handlers.findIndex((handler) => handler.listener === listener);
120
- const handler = handlers.fastRemoveAt(index);
121
- this._recoverHandler(handler);
122
- this._checkListenerValidity(key);
123
- return this;
124
- }
125
- offAll(key, context) {
126
- const handlerMap = this._listenerHandlerMap;
127
- //指定key或全局清除
128
- const processHandler = (handlers, msgKey, hasContext) => {
129
- for (let i = handlers.length - 1; i >= 0; i--) {
130
- const shouldRemove = !hasContext || handlers[i].context === context;
131
- shouldRemove && this._recoverHandler(handlers.fastRemoveAt(i));
132
- }
133
- this._checkListenerValidity(msgKey);
134
- };
135
- if (key) { //清除指定key的所有监听
136
- if (!handlerMap[key]) {
137
- throw new Error(`没有找到key为${key.toString()}的事件`);
138
- }
139
- processHandler(handlerMap[key], key, false);
140
- }
141
- else { //处理全局或上下文清除
142
- const isGlobalClear = !context;
143
- Object.keys(handlerMap).forEach((msgKey) => {
144
- const k = msgKey;
145
- processHandler(handlerMap[k], k, !isGlobalClear);
146
- });
147
- isGlobalClear && (this._listenerHandlerMap = {});
148
- }
149
- }
150
- /**
151
- * 广播
152
- *
153
- * @param key 消息类型
154
- * @param data 消息携带的数据
155
- * @param callback
156
- * @param persistence 是否持久化消息类型。持久化的消息可以在任意时刻通过 getPersistentValue(key) 获取最后一次被持久化的数据。
157
- */
158
- dispatch(key, data, callback, persistence) {
159
- if (StringUtil.isEmptyOrWhiteSpace(key.toString())) {
160
- throw new Error('广播的key不能为空');
161
- }
162
- //持久化
163
- persistence !== null && persistence !== void 0 ? persistence : (this._persistBrodcastMap[key] = data);
164
- const handlers = this._listenerHandlerMap[key];
165
- if (!handlers || handlers.length == 0) {
166
- console.warn(`没有注册广播:${key.toString()}`);
167
- return;
168
- }
169
- for (let i = handlers.length - 1; i >= 0; i--) {
170
- let handler = handlers[i];
171
- this._runHandler(handler, data, callback);
172
- if (handler.once) {
173
- this.off(key, handler.listener);
174
- }
175
- }
176
- this._checkListenerValidity(key);
177
- }
178
- /**
179
- * 广播一条粘性消息。如果广播系统中没有注册该类型的接收者,本条信息将被滞留在系统中,否则等效dispatch方法。
180
- * 可以使用removeStickyBroadcast移除存在的粘性广播。
181
- *
182
- * @param key 消息类型
183
- * @param data 消息携带的数据
184
- * @param callback
185
- * @param persistence 是否持久化消息类型。持久化的消息可以在任意时刻通过 getPersistentValue(key) 获取最后一次被持久化的数据。
186
- */
187
- dispatchSticky(key, data, callback, persistence) {
188
- var _a;
189
- var _b;
190
- if (StringUtil.isEmptyOrWhiteSpace(key.toString())) {
191
- throw new Error('广播的key不能为空');
192
- }
193
- //如果已经有了监听者,则直接广播
194
- if (this._listenerHandlerMap[key]) {
195
- this.dispatch(key, data, callback, persistence);
196
- return;
197
- }
198
- //注意:??= 在ES2021(TypeScript版本4.4)引入
199
- ((_a = (_b = this._stickBrodcastMap)[key]) !== null && _a !== void 0 ? _a : (_b[key] = [])).push({
200
- key: key,
201
- data: data,
202
- callback: callback,
203
- persistence: persistence
204
- });
205
- //如果persistence=true需要先持久化,不能等到通过on->broadcast的时候再持久化。
206
- //因为中途可能会有removeStickyBroadcast操作,那么on就不会调用broadcast,造成持久化无效bug。
207
- persistence !== null && persistence !== void 0 ? persistence : (this._persistBrodcastMap[key] = data);
208
- }
209
- /**
210
- * 移除指定的粘性广播
211
- *
212
- * @param key
213
- */
214
- removeStickyBroadcast(key) {
215
- if (this._stickBrodcastMap[key]) {
216
- delete this._stickBrodcastMap[key];
217
- }
218
- }
219
- /**
220
- * 事件注册是否被注册
221
- * @param key
222
- */
223
- isRegistered(key) {
224
- return !!this._listenerHandlerMap[key];
225
- }
226
- /**
227
- * 获取被持久化的消息。ps:相同key的持久化广播会被覆盖。
228
- * @param key
229
- */
230
- getPersistentValue(key) {
231
- return this._persistBrodcastMap[key];
232
- }
233
- /**
234
- * 销毁广播系统
235
- */
236
- dispose() {
237
- //@ts-ignore
238
- this._listenerHandlerMap = undefined;
239
- //@ts-ignore
240
- this._stickBrodcastMap = undefined;
241
- //@ts-ignore
242
- this._persistBrodcastMap = undefined;
243
- }
4
+ class Broadcaster {
5
+ constructor() {
6
+ this._persistBrodcastMap = {};
7
+ this._listenerHandlerMap = {};
8
+ this._stickBrodcastMap = {};
9
+ this._unuseHandlers = [];
10
+ }
11
+ /**
12
+ * 回收handler
13
+ * @param handler
14
+ */
15
+ _recoverHandler(handler) {
16
+ if (!handler)
17
+ return;
18
+ //@ts-ignore
19
+ handler.listener = undefined;
20
+ handler.key = undefined;
21
+ handler.args = undefined;
22
+ handler.context = undefined;
23
+ this._unuseHandlers.push(handler);
24
+ }
25
+ //检查是否有有效的监听器,如果没有就删除这个key
26
+ _checkListenerValidity(key) {
27
+ if (!key)
28
+ return;
29
+ const handlers = this._listenerHandlerMap[key];
30
+ if (handlers && handlers.length > 0) {
31
+ return;
32
+ }
33
+ delete this._listenerHandlerMap[key];
34
+ }
35
+ /**
36
+ * 添加广播监听,如果有粘性广播就会执行粘性广播
37
+ * @param handler
38
+ */
39
+ _addHandler(handler) {
40
+ const handlerMap = this._listenerHandlerMap;
41
+ const msgKey = handler.key;
42
+ const handlers = handlerMap[msgKey] || [];
43
+ handlers.push(handler);
44
+ handlerMap[msgKey] = handlers;
45
+ //检查是否有粘性广播
46
+ const stickyHandlers = this._stickBrodcastMap[msgKey];
47
+ if (stickyHandlers) {
48
+ //需要把执行过的粘性广播删除,防止注册时再次执行
49
+ this.removeStickyBroadcast(msgKey);
50
+ for (let i = 0; i < stickyHandlers.length; i++) {
51
+ let e = stickyHandlers[i];
52
+ this.dispatch(msgKey, e.data, e.callback, e.persistence);
53
+ }
54
+ }
55
+ }
56
+ /**
57
+ * 将广播的数据作为参数,执行广播监听器的逻辑
58
+ * @param handler 广播监听器
59
+ * @param data 广播携带的数据
60
+ * @param callback 回调函数
61
+ */
62
+ _runHandler(handler, data, callback) {
63
+ if (!handler.listener)
64
+ return;
65
+ let args = [];
66
+ if (data) {
67
+ args.push(data);
68
+ }
69
+ if (callback) {
70
+ data.push(callback);
71
+ }
72
+ //如果有透传参数,则添加到参数列表中
73
+ if (handler.args && handler.args.length > 0) {
74
+ args.push(...handler.args);
75
+ }
76
+ return handler.listener.apply(handler.context, args);
77
+ }
78
+ _onHander(keyOrHandler, listener, context, once, args) {
79
+ if (typeof keyOrHandler === "string") {
80
+ if (!listener)
81
+ return;
82
+ let handlerObj = this._unuseHandlers.pop() || {};
83
+ handlerObj.key = keyOrHandler;
84
+ handlerObj.listener = listener;
85
+ handlerObj.context = context;
86
+ handlerObj.once = once;
87
+ handlerObj.args = args;
88
+ this._addHandler(handlerObj);
89
+ }
90
+ else {
91
+ if (ObjectUtil.isArray(keyOrHandler)) {
92
+ const handlers = keyOrHandler;
93
+ for (let i = 0; i < handlers.length; i++) {
94
+ this._addHandler(handlers[i]);
95
+ }
96
+ }
97
+ else {
98
+ this._addHandler(keyOrHandler);
99
+ }
100
+ }
101
+ }
102
+ on(keyOrHandler, listener, context, args) {
103
+ this._onHander(keyOrHandler, listener, context, false, args);
104
+ }
105
+ once(keyOrHandler, listener, context, args) {
106
+ this._onHander(keyOrHandler, listener, context, true, args);
107
+ }
108
+ /**
109
+ * 注销指定监听
110
+ * @param key 事件名
111
+ * @param listener 监听回调
112
+ * @return this
113
+ */
114
+ off(key, listener) {
115
+ let handlers = this._listenerHandlerMap[key];
116
+ if (!handlers) {
117
+ throw new Error(`没有找到key为${key.toString()}的事件`);
118
+ }
119
+ const index = handlers.findIndex((handler) => handler.listener === listener);
120
+ const handler = handlers.fastRemoveAt(index);
121
+ this._recoverHandler(handler);
122
+ this._checkListenerValidity(key);
123
+ return this;
124
+ }
125
+ offAll(key, context) {
126
+ const handlerMap = this._listenerHandlerMap;
127
+ //指定key或全局清除
128
+ const processHandler = (handlers, msgKey, hasContext) => {
129
+ for (let i = handlers.length - 1; i >= 0; i--) {
130
+ const shouldRemove = !hasContext || handlers[i].context === context;
131
+ shouldRemove && this._recoverHandler(handlers.fastRemoveAt(i));
132
+ }
133
+ this._checkListenerValidity(msgKey);
134
+ };
135
+ if (key) { //清除指定key的所有监听
136
+ if (!handlerMap[key]) {
137
+ throw new Error(`没有找到key为${key.toString()}的事件`);
138
+ }
139
+ processHandler(handlerMap[key], key, false);
140
+ }
141
+ else { //处理全局或上下文清除
142
+ const isGlobalClear = !context;
143
+ Object.keys(handlerMap).forEach((msgKey) => {
144
+ const k = msgKey;
145
+ processHandler(handlerMap[k], k, !isGlobalClear);
146
+ });
147
+ isGlobalClear && (this._listenerHandlerMap = {});
148
+ }
149
+ }
150
+ /**
151
+ * 广播
152
+ *
153
+ * @param key 消息类型
154
+ * @param data 消息携带的数据
155
+ * @param callback
156
+ * @param persistence 是否持久化消息类型。持久化的消息可以在任意时刻通过 getPersistentValue(key) 获取最后一次被持久化的数据。
157
+ */
158
+ dispatch(key, data, callback, persistence) {
159
+ if (StringUtil.isEmptyOrWhiteSpace(key.toString())) {
160
+ throw new Error('广播的key不能为空');
161
+ }
162
+ //持久化
163
+ persistence !== null && persistence !== void 0 ? persistence : (this._persistBrodcastMap[key] = data);
164
+ const handlers = this._listenerHandlerMap[key];
165
+ if (!handlers || handlers.length == 0) {
166
+ console.warn(`没有注册广播:${key.toString()}`);
167
+ return;
168
+ }
169
+ for (let i = handlers.length - 1; i >= 0; i--) {
170
+ let handler = handlers[i];
171
+ this._runHandler(handler, data, callback);
172
+ if (handler.once) {
173
+ this.off(key, handler.listener);
174
+ }
175
+ }
176
+ this._checkListenerValidity(key);
177
+ }
178
+ /**
179
+ * 广播一条粘性消息。如果广播系统中没有注册该类型的接收者,本条信息将被滞留在系统中,否则等效dispatch方法。
180
+ * 可以使用removeStickyBroadcast移除存在的粘性广播。
181
+ *
182
+ * @param key 消息类型
183
+ * @param data 消息携带的数据
184
+ * @param callback
185
+ * @param persistence 是否持久化消息类型。持久化的消息可以在任意时刻通过 getPersistentValue(key) 获取最后一次被持久化的数据。
186
+ */
187
+ dispatchSticky(key, data, callback, persistence) {
188
+ var _a;
189
+ var _b;
190
+ if (StringUtil.isEmptyOrWhiteSpace(key.toString())) {
191
+ throw new Error('广播的key不能为空');
192
+ }
193
+ //如果已经有了监听者,则直接广播
194
+ if (this._listenerHandlerMap[key]) {
195
+ this.dispatch(key, data, callback, persistence);
196
+ return;
197
+ }
198
+ //注意:??= 在ES2021(TypeScript版本4.4)引入
199
+ ((_a = (_b = this._stickBrodcastMap)[key]) !== null && _a !== void 0 ? _a : (_b[key] = [])).push({
200
+ key: key,
201
+ data: data,
202
+ callback: callback,
203
+ persistence: persistence
204
+ });
205
+ //如果persistence=true需要先持久化,不能等到通过on->broadcast的时候再持久化。
206
+ //因为中途可能会有removeStickyBroadcast操作,那么on就不会调用broadcast,造成持久化无效bug。
207
+ persistence !== null && persistence !== void 0 ? persistence : (this._persistBrodcastMap[key] = data);
208
+ }
209
+ /**
210
+ * 移除指定的粘性广播
211
+ *
212
+ * @param key
213
+ */
214
+ removeStickyBroadcast(key) {
215
+ if (this._stickBrodcastMap[key]) {
216
+ delete this._stickBrodcastMap[key];
217
+ }
218
+ }
219
+ /**
220
+ * 事件注册是否被注册
221
+ * @param key
222
+ */
223
+ isRegistered(key) {
224
+ return !!this._listenerHandlerMap[key];
225
+ }
226
+ /**
227
+ * 获取被持久化的消息。ps:相同key的持久化广播会被覆盖。
228
+ * @param key
229
+ */
230
+ getPersistentValue(key) {
231
+ return this._persistBrodcastMap[key];
232
+ }
233
+ /**
234
+ * 销毁广播系统
235
+ */
236
+ dispose() {
237
+ //@ts-ignore
238
+ this._listenerHandlerMap = undefined;
239
+ //@ts-ignore
240
+ this._stickBrodcastMap = undefined;
241
+ //@ts-ignore
242
+ this._persistBrodcastMap = undefined;
243
+ }
244
244
  }
245
245
 
246
246
  export { Broadcaster };
@@ -1,5 +1,5 @@
1
- import { Component } from "cc";
2
- import '../App';
3
- export declare abstract class CocosCore extends Component {
4
- protected onLoad(): void;
5
- }
1
+ import { Component } from "cc";
2
+ import '../App';
3
+ export declare abstract class CocosCore extends Component {
4
+ protected onLoad(): void;
5
+ }
@@ -7,22 +7,22 @@ import { ResLoader } from './ResLoader.js';
7
7
  import { Broadcaster } from './Broadcaster.js';
8
8
  import '../App.js';
9
9
 
10
- class Core extends AbstractCore {
11
- initialize() {
12
- console.log('Core fromework initialize');
13
- // 注册框架基础服务
14
- ServiceLocator.regService('EventManager', new Broadcaster());
15
- ServiceLocator.regService('ResLoader', new ResLoader());
16
- ServiceLocator.regService('UIManager', new UIManager());
17
- // 注册业务模块(通过装饰器自动注册)
18
- // 推迟到构造函数执行完毕
19
- queueMicrotask(() => autoRegister(this));
20
- }
21
- }
22
- class CocosCore extends Component {
23
- onLoad() {
24
- ServiceLocator.regService('core', new Core());
25
- }
10
+ class Core extends AbstractCore {
11
+ initialize() {
12
+ console.log('Core fromework initialize');
13
+ // 注册框架基础服务
14
+ ServiceLocator.regService('EventManager', new Broadcaster());
15
+ ServiceLocator.regService('ResLoader', new ResLoader());
16
+ ServiceLocator.regService('UIManager', new UIManager());
17
+ // 注册业务模块(通过装饰器自动注册)
18
+ // 推迟到构造函数执行完毕
19
+ queueMicrotask(() => autoRegister(this));
20
+ }
21
+ }
22
+ class CocosCore extends Component {
23
+ onLoad() {
24
+ ServiceLocator.regService('core', new Core());
25
+ }
26
26
  }
27
27
 
28
28
  export { CocosCore };
@@ -1,10 +1,10 @@
1
- import { Asset, Prefab, SpriteFrame, Sprite, sp } from "cc";
2
- import { ICocosResManager, AssetType } from "../core";
3
- export declare class ResLoader implements ICocosResManager {
4
- loadAsset<T extends Asset>(path: string, type: AssetType<T>, nameOrUrl?: string): Promise<T>;
5
- loadPrefab(path: string, nameOrUrl?: string): Promise<Prefab>;
6
- loadSpriteFrame(ref: Sprite, path: string, nameOrUrl?: string): Promise<SpriteFrame>;
7
- loadSpine(ref: sp.Skeleton, path: string, nameOrUrl?: string): Promise<sp.SkeletonData>;
8
- release(asset: Asset): void;
9
- release(path: string, type?: AssetType<Asset>, nameOrUrl?: string): void;
10
- }
1
+ import { Asset, Prefab, SpriteFrame, Sprite, sp } from "cc";
2
+ import { ICocosResManager, AssetType } from "../core";
3
+ export declare class ResLoader implements ICocosResManager {
4
+ loadAsset<T extends Asset>(path: string, type: AssetType<T>, nameOrUrl?: string): Promise<T>;
5
+ loadPrefab(path: string, nameOrUrl?: string): Promise<Prefab>;
6
+ loadSpriteFrame(ref: Sprite, path: string, nameOrUrl?: string): Promise<SpriteFrame>;
7
+ loadSpine(ref: sp.Skeleton, path: string, nameOrUrl?: string): Promise<sp.SkeletonData>;
8
+ release(asset: Asset): void;
9
+ release(path: string, type?: AssetType<Asset>, nameOrUrl?: string): void;
10
+ }