@ives_xxz/framework 1.2.12 → 1.2.13

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/FW.d.ts CHANGED
@@ -493,11 +493,11 @@ declare namespace FW {
493
493
  /**
494
494
  * 层级打开参数
495
495
  */
496
- type LayerOpenArgs<T> = {
496
+ type LayerOpenArgs = {
497
497
  /**
498
498
  * 控制器类型
499
499
  */
500
- type: new () => T;
500
+ type: new () => LayerController;
501
501
  /**
502
502
  * 父节点
503
503
  */
@@ -505,17 +505,22 @@ declare namespace FW {
505
505
  /**
506
506
  * 坐标
507
507
  */
508
- position?: cc.Vec3;
508
+ position?: Vec3;
509
509
  /**
510
510
  * 传递参数
511
511
  */
512
512
  args?: any;
513
513
  };
514
514
 
515
+ type Vec3 = {
516
+ x: number;
517
+ y: number;
518
+ };
519
+
515
520
  /**
516
521
  * 层级数据
517
522
  */
518
- type LayerData<T> = {
523
+ type LayerData = {
519
524
  /**
520
525
  * 外部引用
521
526
  */
@@ -523,7 +528,7 @@ declare namespace FW {
523
528
  /**
524
529
  * 构造类
525
530
  */
526
- layerConstructor: new () => T;
531
+ controllerConstructor: new () => FW.LayerController;
527
532
  /**
528
533
  * 唯一id
529
534
  */
@@ -555,7 +560,7 @@ declare namespace FW {
555
560
  /**
556
561
  * layer控制器
557
562
  */
558
- controller: FWLayerController;
563
+ controller: LayerController;
559
564
  /**
560
565
  * 是否加载完成
561
566
  */
@@ -568,6 +573,10 @@ declare namespace FW {
568
573
  * 坐标
569
574
  */
570
575
  layerPosition?: Vec3;
576
+ /**
577
+ * 代理
578
+ */
579
+ controllerProxy: LayerController;
571
580
  };
572
581
 
573
582
  /**
@@ -935,7 +944,7 @@ declare namespace FW {
935
944
  type LayerController = {
936
945
  readonly entry: FW.Entry;
937
946
 
938
- layerData: FWLayerData;
947
+ layerData: LayerData;
939
948
  /** uuid */
940
949
  uuid: string;
941
950
  /** 渲染顺序 */
@@ -950,7 +959,7 @@ declare namespace FW {
950
959
  autoRelease: boolean;
951
960
  /** 是否允许重复打开 */
952
961
  isRepeatOpen: boolean;
953
-
962
+ initialize?();
954
963
  /** 生命周期函数 */
955
964
  onInit?(...args: any);
956
965
  onLoad?();
@@ -7,10 +7,10 @@ import { FWQueue } from '../utils/FWQueue';
7
7
 
8
8
  const ADD_EXTERNAL_REFERENCE: string = 'addExternalReference';
9
9
 
10
- export class FWLayerData<T extends FWLayerController = FWLayerController>
11
- implements FW.LayerData<T>
10
+ export class FWLayerData<T extends FW.LayerController = FW.LayerController>
11
+ implements FW.LayerData
12
12
  {
13
- layerConstructor: new () => T;
13
+ controllerConstructor: new () => T;
14
14
  uuid: string;
15
15
  layer: FW.Layer;
16
16
  layerName: string;
@@ -22,6 +22,7 @@ export class FWLayerData<T extends FWLayerController = FWLayerController>
22
22
  controllerName: string;
23
23
  controller: FW.LayerController;
24
24
  loaded: boolean;
25
+ controllerProxy: FW.LayerController;
25
26
  externalReference?: Set<(ref: FW.LayerController | null) => void>;
26
27
  }
27
28
 
@@ -29,11 +30,11 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
29
30
  /**
30
31
  * 当前待打开的layer队列
31
32
  */
32
- private layerQueue: FWQueue<FWLayerData>;
33
+ private layerQueue: FWQueue<FW.LayerData>;
33
34
  /**
34
35
  * 当前已经打开的layer缓存容器
35
36
  */
36
- private layerMap: Map<string, FWLayerData>;
37
+ private layerMap: Map<string, FW.LayerData>;
37
38
 
38
39
  /**
39
40
  * 当前所有打开Layer注册表
@@ -45,8 +46,8 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
45
46
  private layerStack: FWLayerData[];
46
47
 
47
48
  public initialize(): void {
48
- this.layerQueue = new FWQueue<FWLayerData>();
49
- this.layerMap = new Map<string, FWLayerData>();
49
+ this.layerQueue = new FWQueue<FW.LayerData>();
50
+ this.layerMap = new Map<string, FW.LayerData>();
50
51
  this.layerRegistry = new Set<new () => FW.LayerController>();
51
52
  this.layerStack = [];
52
53
  }
@@ -94,7 +95,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
94
95
  * @param ctr
95
96
  * @returns
96
97
  */
97
- protected createLayerData(ctr: FWLayerController) {
98
+ protected createLayerData(ctr: FW.LayerController) {
98
99
  const layerData = new FWLayerData();
99
100
  const layerType = ctr.layerType;
100
101
 
@@ -114,8 +115,8 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
114
115
  * @param data
115
116
  * @returns
116
117
  */
117
- async openAsync<Ctr extends FWLayerController = FWLayerController>(
118
- data: FW.LayerOpenArgs<Ctr>,
118
+ async openAsync<Ctr extends FW.LayerController = FW.LayerController>(
119
+ data: FW.LayerOpenArgs,
119
120
  ): Promise<Ctr> {
120
121
  if (!data) {
121
122
  FWLog.error(`打开Layer失败:${data},请检查参数!`);
@@ -123,8 +124,8 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
123
124
  }
124
125
 
125
126
  for (const [key, value] of this.layerMap) {
126
- if (value.layerConstructor == data.type) {
127
- return value.controller as Ctr;
127
+ if (value.controllerConstructor == data.type) {
128
+ return value.controllerProxy as Ctr;
128
129
  }
129
130
  }
130
131
 
@@ -132,14 +133,14 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
132
133
  const ctrName = cc.js.getClassName(ctr);
133
134
  const layerData = this.createLayerData(ctr);
134
135
 
135
- layerData.layerConstructor = data.type;
136
+ layerData.controllerConstructor = data.type;
136
137
  layerData.controller = ctr;
137
138
  layerData.controllerName = ctrName;
138
139
 
139
140
  this.layerMap.set(ctrName, layerData);
140
141
 
141
142
  if (this.layerRegistry.has(data.type)) {
142
- return this.layerMap.get(ctrName).controller as Ctr;
143
+ return this.layerMap.get(ctrName).controllerProxy as Ctr;
143
144
  }
144
145
 
145
146
  this.layerRegistry.add(data.type);
@@ -198,8 +199,8 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
198
199
  return target[prop];
199
200
  },
200
201
  });
201
-
202
- return proxy;
202
+ ctr.layerData.controllerProxy = proxy;
203
+ return proxy as Ctr;
203
204
  }
204
205
 
205
206
  /**
@@ -207,15 +208,15 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
207
208
  * @param data
208
209
  * @returns
209
210
  */
210
- openSync<Ctr extends FWLayerController = FWLayerController>(data: FW.LayerOpenArgs<Ctr>): Ctr {
211
+ openSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
211
212
  if (!data) {
212
213
  FWLog.error(`open layer failed:${data},please check param!`);
213
214
  return undefined;
214
215
  }
215
216
 
216
217
  for (const [key, value] of this.layerMap) {
217
- if (value.layerConstructor == data.type) {
218
- return value.controller as Ctr;
218
+ if (value.controllerConstructor == data.type) {
219
+ return value.controllerProxy as Ctr;
219
220
  }
220
221
  }
221
222
 
@@ -223,14 +224,14 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
223
224
  const ctrName = cc.js.getClassName(ctr);
224
225
  const layerData = this.createLayerData(ctr);
225
226
 
226
- layerData.layerConstructor = data.type;
227
+ layerData.controllerConstructor = data.type;
227
228
  layerData.controller = ctr;
228
229
  layerData.controllerName = ctrName;
229
230
 
230
231
  this.layerMap.set(ctrName, layerData);
231
232
 
232
233
  if (this.layerRegistry.has(data.type)) {
233
- return this.layerMap.get(ctrName).controller as Ctr;
234
+ return this.layerMap.get(ctrName).controllerProxy as Ctr;
234
235
  }
235
236
 
236
237
  this.layerRegistry.add(data.type);
@@ -289,7 +290,8 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
289
290
  return target[prop];
290
291
  },
291
292
  });
292
- return proxy;
293
+ ctr.layerData.controllerProxy = proxy;
294
+ return proxy as Ctr;
293
295
  }
294
296
 
295
297
  /**
@@ -297,7 +299,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
297
299
  * @param ctr
298
300
  * @returns
299
301
  */
300
- displayLayer<Ctr extends FWLayerController = FWLayerController>(ctr: Ctr): Ctr {
302
+ displayLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
301
303
  const layerData = ctr.layerData;
302
304
  if (!this.layerMap.has(layerData.controllerName)) {
303
305
  FWLog.warn(`display layer failed,layer name : ${layerData.layerName}`);
@@ -319,7 +321,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
319
321
  * @param ctr
320
322
  * @returns
321
323
  */
322
- hideLayer<Ctr extends FWLayerController = FWLayerController>(ctr: Ctr): Ctr {
324
+ hideLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
323
325
  const layerData = ctr.layerData;
324
326
  if (!this.layerMap.has(layerData.controllerName)) {
325
327
  FWLog.warn(`hide layer failed,layer name : ${layerData.layerName}`);
@@ -398,7 +400,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
398
400
  }
399
401
 
400
402
  this.layerMap.delete(layerData.controllerName);
401
- this.layerRegistry.delete(ctr.layerData.layerConstructor);
403
+ this.layerRegistry.delete(ctr.layerData.controllerConstructor);
402
404
 
403
405
  const index = this.layerStack.findIndex((v) => {
404
406
  v.controller == ctr;
@@ -412,14 +414,14 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
412
414
  const nextLayer = this.openSync({
413
415
  parent: nextLayerData.layerParent,
414
416
  position: nextLayerData.layerPosition,
415
- type: nextLayerData.layerConstructor,
417
+ type: nextLayerData.controllerConstructor,
416
418
  });
417
419
  /** 如果同步打开失败,再次尝试异步打开(可能由于资源所在bundle并未提前加载) */
418
420
  if (!nextLayer) {
419
421
  return this.openAsync({
420
422
  parent: nextLayerData.layerParent,
421
423
  position: nextLayerData.layerPosition,
422
- type: nextLayerData.layerConstructor,
424
+ type: nextLayerData.controllerConstructor,
423
425
  });
424
426
  } else {
425
427
  return nextLayer;
@@ -429,7 +431,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
429
431
  }
430
432
  }
431
433
 
432
- private notifyExternalRefUpdates(layerData: FWLayerData) {
434
+ private notifyExternalRefUpdates(layerData: FW.LayerData) {
433
435
  layerData.externalReference.forEach((cb) => {
434
436
  try {
435
437
  cb?.(null);
@@ -445,7 +447,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
445
447
  layerComponent: string,
446
448
  renderOrder: number,
447
449
  parent: cc.Node,
448
- position: cc.Vec3,
450
+ position: FW.Vec3,
449
451
  ) {
450
452
  parent = parent || FW.Entry.scene?.node;
451
453
 
@@ -456,14 +458,15 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
456
458
  return;
457
459
  }
458
460
  const node = cc.instantiate(prefab);
461
+ const p = cc.v3(position.x, position.y);
459
462
  node.setParent(parent);
460
- node.setPosition(position);
463
+ node.setPosition(p);
461
464
  node.zIndex = renderOrder;
462
465
  !node.getComponent(layerComponent) && node.addComponent(layerComponent);
463
466
  return node.getComponent(FWLayer);
464
467
  }
465
468
 
466
- private lifecycleProcessing(ctr: FWLayerController) {
469
+ private lifecycleProcessing(ctr: FW.LayerController) {
467
470
  const layer = ctr.layer;
468
471
 
469
472
  const onLoad = layer['onLoad'];
@@ -509,7 +512,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
509
512
  };
510
513
  }
511
514
 
512
- getLayerMap(): Map<string, FWLayerData> {
515
+ getLayerMap(): Map<string, FW.LayerData> {
513
516
  return this.layerMap;
514
517
  }
515
518
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ives_xxz/framework",
3
- "version": "1.2.12",
3
+ "version": "1.2.13",
4
4
  "description": "cocoscreator 2.x mvc framework",
5
5
  "main": "index.js",
6
6
  "keywords": [