@ives_xxz/framework 2.1.34 → 2.1.36

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.
@@ -1,9 +1,9 @@
1
- import { FWManager } from './FWManager';
2
- import { FWQueue } from '../utils/FWQueue';
3
- import { FrameworkBase } from '../FrameworkBase';
4
- import { PerformanceMonitor } from '../expand/FWDecorator';
1
+ import { FWManager } from "./FWManager";
2
+ import { FWQueue } from "../utils/FWQueue";
3
+ import { FrameworkBase } from "../FrameworkBase";
4
+ import { PerformanceMonitor } from "../expand/FWDecorator";
5
5
 
6
- const ADD_EXTERNAL_REFERENCE: string = 'addExternalReference';
6
+ const ADD_EXTERNAL_REFERENCE: string = "addExternalReference";
7
7
 
8
8
  export class FWLayerManager extends FWManager implements FW.LayerManager {
9
9
  private resourceManager: FWLayerResourceManager;
@@ -22,7 +22,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
22
22
  this.createManager = new FWLayerCreateManager();
23
23
  this.stackManager = new FWLayerStackManager();
24
24
  this.queueManager = new FWLayerQueueManager();
25
- this.stateManager = new FWLayerStateManager(this.debug);
25
+ this.stateManager = new FWLayerStateManager();
26
26
  this.openManager = new FWLayerOpenManager(
27
27
  this.dataManager,
28
28
  this.resourceManager,
@@ -33,35 +33,49 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
33
33
  );
34
34
  }
35
35
 
36
- openDetailsLog() {
36
+ openDebug() {
37
37
  this.debug = true;
38
38
  }
39
+
40
+ isDebug() {
41
+ return this.debug;
42
+ }
39
43
  /**
40
44
  * 异步打开Layer
41
45
  */
42
- @PerformanceMonitor('openAsync')
46
+ @PerformanceMonitor("openAsync")
43
47
  async openAsync<Ctr extends FW.LayerController = FW.LayerController>(
44
48
  data: FW.LayerOpenArgs,
45
49
  ): Promise<Ctr> {
46
- if (this.debug) FW.Log.error('异步打开Layer -> 查看调用堆栈');
50
+ if (this.debug) {
51
+ FW.Log.error(`异步打开Layer ->`, cc.js.getClassName(data.type));
52
+ }
47
53
  return this.openManager.openLayerAsync(data) as Promise<Ctr>;
48
54
  }
49
55
 
50
56
  /**
51
57
  * 同步打开
52
58
  */
53
- openSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
54
- if (this.debug) FW.Log.error('同步打开Layer -> 查看调用堆栈');
59
+ openSync<Ctr extends FW.LayerController = FW.LayerController>(
60
+ data: FW.LayerOpenArgs,
61
+ ): Ctr {
62
+ if (this.debug) {
63
+ FW.Log.error(`同步打开Layer ->`, cc.js.getClassName(data.type));
64
+ }
55
65
  return this.openManager.openLayerSync(data) as Ctr;
56
66
  }
57
67
 
58
68
  /**
59
69
  * 显示layer并恢复所有节点事件
60
70
  */
61
- displayLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
71
+ displayLayer<Ctr extends FW.LayerController = FW.LayerController>(
72
+ ctr: Ctr,
73
+ ): Ctr {
62
74
  const layerData = ctr.layerData;
63
75
 
64
- if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
76
+ if (
77
+ !this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
78
+ ) {
65
79
  FW.Log.warn(`display layer failed,layer name : ${layerData.layerName}`);
66
80
  return;
67
81
  }
@@ -81,9 +95,13 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
81
95
  /**
82
96
  * 隐藏layer并隐藏所有节点事件
83
97
  */
84
- hideLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
98
+ hideLayer<Ctr extends FW.LayerController = FW.LayerController>(
99
+ ctr: Ctr,
100
+ ): Ctr {
85
101
  const layerData = ctr.layerData;
86
- if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
102
+ if (
103
+ !this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
104
+ ) {
87
105
  FW.Log.warn(`hide layer failed,layer name : ${layerData.layerName}`);
88
106
  return;
89
107
  }
@@ -127,7 +145,9 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
127
145
  for (let i = 0; i < count; i++) {
128
146
  let layerData = this.stackManager.pop();
129
147
  let ctr = layerData.controller;
130
- if (!this.dataManager.getLayerMap().has(layerData.controllerConstructor)) {
148
+ if (
149
+ !this.dataManager.getLayerMap().has(layerData.controllerConstructor)
150
+ ) {
131
151
  return;
132
152
  }
133
153
  if (cc.isValid(ctr.layer?.node)) {
@@ -158,12 +178,20 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
158
178
  /**
159
179
  * 关闭layer
160
180
  */
161
- async close<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Promise<Ctr> {
181
+ async close<Ctr extends FW.LayerController = FW.LayerController>(
182
+ ctr: Ctr,
183
+ ): Promise<Ctr> {
162
184
  if (!ctr) return;
163
185
 
164
186
  return FW.Entry.promiseMgr.execute(async (resolve, reject) => {
165
187
  let layerData = ctr.layerData;
166
188
 
189
+ if (this.debug) {
190
+ FW.Log.error(
191
+ `${cc.js.getClassName(layerData?.controllerConstructor)} 关闭Layer}`,
192
+ );
193
+ }
194
+
167
195
  if (cc.isValid(ctr.layer?.node)) {
168
196
  this.stateManager.setState(
169
197
  ctr.layerData.controllerConstructor,
@@ -261,7 +289,8 @@ export class FWLayerData<T extends FW.LayerController = FW.LayerController>
261
289
  class FWLayerDataManager {
262
290
  private layerMap: Map<new () => FW.LayerController, FWLayerData> = new Map();
263
291
  private layerRegistry: Set<new () => FW.LayerController> = new Set();
264
- private layerControllerFactory: FWLayerControllerFactory = new FWLayerControllerFactory();
292
+ private layerControllerFactory: FWLayerControllerFactory =
293
+ new FWLayerControllerFactory();
265
294
  /**
266
295
  * 获取已存在的Layer
267
296
  */
@@ -389,7 +418,7 @@ class FWLayerDataManager {
389
418
  try {
390
419
  cb?.(null);
391
420
  } catch (e) {
392
- FW.Log.error('External ref update callback error:', e);
421
+ FW.Log.error("External ref update callback error:", e);
393
422
  }
394
423
  });
395
424
  layerData.externalReference.clear();
@@ -414,7 +443,8 @@ class FWLayerDataManager {
414
443
  }
415
444
 
416
445
  class FWLayerCreateManager {
417
- private lifecycleManager: FWLayerLifecycleManager = new FWLayerLifecycleManager();
446
+ private lifecycleManager: FWLayerLifecycleManager =
447
+ new FWLayerLifecycleManager();
418
448
 
419
449
  /**
420
450
  * 创建Layer节点
@@ -496,7 +526,12 @@ class FWLayerOpenManager {
496
526
  return proxy as Ctr;
497
527
  }
498
528
 
499
- if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
529
+ if (
530
+ this.queueManager.handlePopupQueue(
531
+ layerData,
532
+ this.dataManager.getLayerMap(),
533
+ )
534
+ ) {
500
535
  return undefined;
501
536
  }
502
537
 
@@ -505,7 +540,9 @@ class FWLayerOpenManager {
505
540
  return this.asyncGenerationLayer(layerData, data);
506
541
  }
507
542
 
508
- openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
543
+ openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(
544
+ data: FW.LayerOpenArgs,
545
+ ): Ctr {
509
546
  if (!this.validateOpenData(data)) {
510
547
  return undefined;
511
548
  }
@@ -526,7 +563,12 @@ class FWLayerOpenManager {
526
563
  return proxy as Ctr;
527
564
  }
528
565
 
529
- if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
566
+ if (
567
+ this.queueManager.handlePopupQueue(
568
+ layerData,
569
+ this.dataManager.getLayerMap(),
570
+ )
571
+ ) {
530
572
  return undefined;
531
573
  }
532
574
 
@@ -549,10 +591,9 @@ class FWLayerOpenManager {
549
591
  /**
550
592
  * 异步生成Layer
551
593
  */
552
- private async asyncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
553
- layerData: FWLayerData,
554
- data: FW.LayerOpenArgs,
555
- ): Promise<Ctr> {
594
+ private async asyncGenerationLayer<
595
+ Ctr extends FW.LayerController = FW.LayerController,
596
+ >(layerData: FWLayerData, data: FW.LayerOpenArgs): Promise<Ctr> {
556
597
  try {
557
598
  this.stateManager.setState(
558
599
  layerData.controllerConstructor,
@@ -585,10 +626,9 @@ class FWLayerOpenManager {
585
626
  /**
586
627
  * 同步创建Layer
587
628
  */
588
- private syncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
589
- layerData: FWLayerData,
590
- data: FW.LayerOpenArgs,
591
- ): Ctr {
629
+ private syncGenerationLayer<
630
+ Ctr extends FW.LayerController = FW.LayerController,
631
+ >(layerData: FWLayerData, data: FW.LayerOpenArgs): Ctr {
592
632
  try {
593
633
  this.stateManager.setState(
594
634
  layerData.controllerConstructor,
@@ -634,22 +674,29 @@ class FWLayerOpenManager {
634
674
 
635
675
  this.createManager.setupLayerLifecycle(layer, layerData.controller);
636
676
 
637
- if (layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT) {
677
+ if (
678
+ layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT
679
+ ) {
638
680
  this.stackManager.push(layerData);
639
681
  }
640
682
 
641
683
  this.dataManager.removeFromRegistry(layerData.controllerConstructor);
642
684
 
643
- layerData.controllerProxy = this.dataManager.createControllerProxy(layerData);
685
+ layerData.controllerProxy =
686
+ this.dataManager.createControllerProxy(layerData);
644
687
 
645
688
  return layerData.controllerProxy as Ctr;
646
689
  }
647
690
  }
648
691
 
649
692
  class FWLayerResourceManager {
650
- async loadLayerAsync(layerData: FWLayerData): Promise<{ asset: cc.Prefab; uuid: string }> {
693
+ async loadLayerAsync(
694
+ layerData: FWLayerData,
695
+ ): Promise<{ asset: cc.Prefab; uuid: string }> {
651
696
  try {
652
- const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(layerData.layerAssetProperty);
697
+ const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(
698
+ layerData.layerAssetProperty,
699
+ );
653
700
  if (!res) return undefined;
654
701
  res.user = layerData.layerName;
655
702
  res.autoRelease = layerData.controller.autoRelease;
@@ -664,7 +711,9 @@ class FWLayerResourceManager {
664
711
  loadLayerSync(layerData: FWLayerData): { asset: cc.Prefab; uuid: string } {
665
712
  layerData.layerAssetProperty.bundle =
666
713
  layerData.layerAssetProperty.bundle || FW.Entry.bundleName;
667
- const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(layerData.layerAssetProperty);
714
+ const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(
715
+ layerData.layerAssetProperty,
716
+ );
668
717
  res.user = layerData.layerName;
669
718
  res.autoRelease = layerData.controller.autoRelease;
670
719
  res.dependentBundle = layerData.controller.layerAssetProperty.bundle;
@@ -676,7 +725,9 @@ class FWLayerStackManager {
676
725
  private layerStack: FWLayerData[] = [];
677
726
 
678
727
  push(layerData: FWLayerData): void {
679
- if (layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT) {
728
+ if (
729
+ layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT
730
+ ) {
680
731
  this.layerStack.push(layerData);
681
732
  }
682
733
  }
@@ -686,7 +737,9 @@ class FWLayerStackManager {
686
737
  }
687
738
 
688
739
  remove(layerData: FWLayerData): void {
689
- const index = this.layerStack.findIndex((v) => v.controller === layerData.controller);
740
+ const index = this.layerStack.findIndex(
741
+ (v) => v.controller === layerData.controller,
742
+ );
690
743
  if (index > -1) {
691
744
  this.layerStack.splice(index, 1);
692
745
  }
@@ -702,14 +755,24 @@ class FWLayerStackManager {
702
755
  }
703
756
 
704
757
  class FWLayerStateManager {
705
- private layerStates = new Map<new () => FW.LayerController, FW.SystemDefine.FWLayerState>();
706
- constructor(private readonly debug: boolean) {}
707
- setState(ctrType: new () => FW.LayerController, state: FW.SystemDefine.FWLayerState): void {
708
- if (this.debug) FW.Log.debug(`setLayerState: ${cc.js.getClassName(ctrType)} ${state}`);
758
+ private layerStates = new Map<
759
+ new () => FW.LayerController,
760
+ FW.SystemDefine.FWLayerState
761
+ >();
762
+ constructor() {}
763
+ setState(
764
+ ctrType: new () => FW.LayerController,
765
+ state: FW.SystemDefine.FWLayerState,
766
+ ): void {
767
+ if (FW.Entry.layerMgr.isDebug()) {
768
+ FW.Log.debug(`${cc.js.getClassName(ctrType)}->更新状态${state}`);
769
+ }
709
770
  this.layerStates.set(ctrType, state);
710
771
  }
711
772
 
712
- getState(ctrType: new () => FW.LayerController): FW.SystemDefine.FWLayerState {
773
+ getState(
774
+ ctrType: new () => FW.LayerController,
775
+ ): FW.SystemDefine.FWLayerState {
713
776
  return this.layerStates.get(ctrType) || FW.SystemDefine.FWLayerState.CLOSED;
714
777
  }
715
778
 
@@ -726,7 +789,9 @@ class FWLayerStateManager {
726
789
  }
727
790
 
728
791
  removeState(ctrType: new () => FW.LayerController): void {
729
- if (this.debug) FW.Log.debug(`removeLayerState: ${cc.js.getClassName(ctrType)}`);
792
+ if (FW.Entry.layerMgr.isDebug()) {
793
+ FW.Log.debug(`${cc.js.getClassName(ctrType)}-> 移除状态`);
794
+ }
730
795
  this.layerStates.delete(ctrType);
731
796
  }
732
797
 
@@ -742,7 +807,9 @@ class FWLayerQueueManager {
742
807
  layerData: FWLayerData,
743
808
  layerMap: Map<new () => FW.LayerController, FWLayerData>,
744
809
  ): boolean {
745
- if (layerData.controller.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE) {
810
+ if (
811
+ layerData.controller.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE
812
+ ) {
746
813
  const hasNonPermanentLayers = Array.from(layerMap.values()).some(
747
814
  (value) => value.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE,
748
815
  );
@@ -782,44 +849,44 @@ class FWLayerQueueManager {
782
849
 
783
850
  class FWLayerLifecycleManager {
784
851
  setupLifecycleHooks(layer: FW.Layer, ctr: FW.LayerController): void {
785
- const originalOnLoad = layer['onLoad'];
786
- layer['onLoad'] = function () {
852
+ const originalOnLoad = layer["onLoad"];
853
+ layer["onLoad"] = function () {
787
854
  originalOnLoad?.call(this);
788
855
  ctr.onLoad?.();
789
856
  };
790
857
 
791
- const originalStart = layer['start'];
792
- layer['start'] = function () {
858
+ const originalStart = layer["start"];
859
+ layer["start"] = function () {
793
860
  originalStart?.call(this);
794
861
  ctr.onStart?.();
795
862
  };
796
863
 
797
- const originalOnEnable = layer['onEnable'];
798
- layer['onEnable'] = function () {
864
+ const originalOnEnable = layer["onEnable"];
865
+ layer["onEnable"] = function () {
799
866
  originalOnEnable?.call(this);
800
867
  ctr.onEnable?.();
801
868
  };
802
869
 
803
- const originalOnDisable = layer['onDisable'];
804
- layer['onDisable'] = function () {
870
+ const originalOnDisable = layer["onDisable"];
871
+ layer["onDisable"] = function () {
805
872
  originalOnDisable?.call(this);
806
873
  ctr.onDisable?.();
807
874
  };
808
875
 
809
- const originalOnDestroy = layer['onDestroy'];
810
- layer['onDestroy'] = function () {
876
+ const originalOnDestroy = layer["onDestroy"];
877
+ layer["onDestroy"] = function () {
811
878
  originalOnDestroy?.call(this);
812
879
  ctr.onDestroy?.();
813
880
  };
814
881
 
815
- const originalUpdate = layer['update'];
816
- layer['update'] = function (dt: number) {
882
+ const originalUpdate = layer["update"];
883
+ layer["update"] = function (dt: number) {
817
884
  originalUpdate?.call(this, dt);
818
885
  ctr.onUpdate?.(dt);
819
886
  };
820
887
 
821
- const originalLateUpdate = layer['lateUpdate'];
822
- layer['lateUpdate'] = function () {
888
+ const originalLateUpdate = layer["lateUpdate"];
889
+ layer["lateUpdate"] = function () {
823
890
  originalLateUpdate?.call(this);
824
891
  ctr.onLateUpdate?.();
825
892
  };
@@ -830,7 +897,9 @@ class FWLayerControllerFactory {
830
897
  /**
831
898
  * 创建并初始化 LayerController
832
899
  */
833
- createController<Ctr extends FW.LayerController = FW.LayerController>(type: new () => Ctr): Ctr {
900
+ createController<Ctr extends FW.LayerController = FW.LayerController>(
901
+ type: new () => Ctr,
902
+ ): Ctr {
834
903
  const ctr = new type();
835
904
 
836
905
  ctr.initializeDependencies?.();
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@ives_xxz/framework",
3
- "version": "2.1.34",
3
+ "version": "2.1.36",
4
4
  "description": "cocoscreator 2.x mvc framework",
5
5
  "main": "index.js",
6
- "keywords": ["123456"],
6
+ "keywords": [
7
+ "123456"
8
+ ],
7
9
  "author": "ives",
8
10
  "license": "ISC"
9
11
  }
package/types/FW.d.ts CHANGED
@@ -899,6 +899,10 @@ declare namespace FW {
899
899
 
900
900
  /** 清理方法 */
901
901
  clear(): void;
902
+ /** 开启调试 */
903
+ openDebug():void;
904
+ /** 是否开启调试 */
905
+ isDebug():boolean;
902
906
 
903
907
  /**
904
908
  * 异步打开layer