@ives_xxz/framework 2.1.29 → 2.1.31

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.
@@ -44,10 +44,10 @@ export class FWLayerType {
44
44
  }
45
45
 
46
46
  export class FWTaskStatus {
47
- IDLE = 'IDLE';
48
- RUNNING = 'RUNNING';
49
- PAUSED = 'PAUSED';
50
- COMPLETED = 'COMPLETED';
47
+ IDLE = "IDLE";
48
+ RUNNING = "RUNNING";
49
+ PAUSED = "PAUSED";
50
+ COMPLETED = "COMPLETED";
51
51
  }
52
52
 
53
53
  export class FWPriorityOrder {
@@ -91,17 +91,22 @@ export class FWLogType {
91
91
  * HTTP请求类型
92
92
  */
93
93
  export class FWHttpRequestType {
94
- GET = 'GET';
95
- POST = 'POST';
94
+ GET = "GET";
95
+ POST = "POST";
96
96
  }
97
97
 
98
98
  /**
99
99
  * 动画机类型
100
100
  */
101
101
  export class FWAnimationMachineType {
102
- TWEEN = 'TWEEN';
103
- SKELETON = 'SKELETON';
104
- ANIMATION = 'ANIMATION';
102
+ TWEEN = "TWEEN";
103
+ SKELETON = "SKELETON";
104
+ ANIMATION = "ANIMATION";
105
+ }
106
+
107
+ export class FWVirtualScrollViewDirection {
108
+ VERTICAL = 0;
109
+ HORIZONTAL = 1;
105
110
  }
106
111
 
107
112
  export class FWScrollViewTemplateType {
@@ -122,23 +127,23 @@ export class FWScrollViewSelectedType {
122
127
  }
123
128
 
124
129
  export class FWLanguageAssetType {
125
- LABEL = 'label';
126
- SPRITE = 'sprite';
127
- SKELETON = 'skeleton';
130
+ LABEL = "label";
131
+ SPRITE = "sprite";
132
+ SKELETON = "skeleton";
128
133
  }
129
134
 
130
135
  export class FWPromiseStatus {
131
- PENDING = 'pending';
132
- FULFILLED = 'fulfilled';
133
- REJECTED = 'rejected';
134
- CANCELLED = 'cancelled';
136
+ PENDING = "pending";
137
+ FULFILLED = "fulfilled";
138
+ REJECTED = "rejected";
139
+ CANCELLED = "cancelled";
135
140
  }
136
141
 
137
142
  export class FWLayerState {
138
- CLOSED = 'closed';
139
- OPENING = 'opening';
140
- OPENED = 'opened';
141
- CLOSING = 'closing';
143
+ CLOSED = "closed";
144
+ OPENING = "opening";
145
+ OPENED = "opened";
146
+ CLOSING = "closing";
142
147
  }
143
148
 
144
149
  export class FWAudioType {
package/entry/FWEntry.ts CHANGED
@@ -16,6 +16,7 @@ import FWEngineManager from '../manager/FWEngineManager';
16
16
  import FWHotUpdateManager from '../manager/FWHotUpdateManager';
17
17
  import FWPromiseManager from '../manager/FWPromiseManager';
18
18
  import { FWPerformanceManager } from '../manager/FWPerformanceManager';
19
+ import FWUtils from '../utils/FWUtils';
19
20
 
20
21
  /**
21
22
  * 入口脚本
@@ -90,6 +91,8 @@ export class FWEntry implements FW.Entry {
90
91
  * 性能管理器
91
92
  */
92
93
  performanceMgr: FW.PerformanceManager;
94
+
95
+ utils: FW.Utils;
93
96
  /**
94
97
  * 当前Scene
95
98
  */
@@ -119,6 +122,7 @@ export class FWEntry implements FW.Entry {
119
122
  this.hotUpdateMgr = new FWHotUpdateManager();
120
123
  this.promiseMgr = new FWPromiseManager();
121
124
  this.performanceMgr = new FWPerformanceManager();
125
+ this.utils = new FWUtils();
122
126
  }
123
127
 
124
128
  /**
@@ -53,12 +53,17 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
53
53
  { url: ske, ext: type },
54
54
  ],
55
55
  async (error, assets) => {
56
- const texture: cc.Texture2D = await this.loadRemote();
56
+ if (error != null) {
57
+ reject(error);
58
+ return;
59
+ }
60
+ const fileName = FW.Entry.utils.getFileName(img);
61
+ const texture: cc.Texture2D = await this.loadRemote(img);
57
62
  var asset = new sp.SkeletonData();
58
- asset.skeletonJson = assets[1];
59
63
  asset.atlasText = assets[0];
64
+ asset.skeletonJson = assets[1];
60
65
  asset.textures.push(texture);
61
- asset['textureNames'] = [`${img}.png`];
66
+ asset['textureNames'] = [`${fileName}`];
62
67
  asset['_uuid'] = ske;
63
68
  resolve(asset);
64
69
  },
@@ -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;
@@ -34,7 +34,7 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
34
34
  /**
35
35
  * 异步打开Layer
36
36
  */
37
- @PerformanceMonitor('openAsync')
37
+ @PerformanceMonitor("openAsync")
38
38
  async openAsync<Ctr extends FW.LayerController = FW.LayerController>(
39
39
  data: FW.LayerOpenArgs,
40
40
  ): Promise<Ctr> {
@@ -44,17 +44,23 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
44
44
  /**
45
45
  * 同步打开
46
46
  */
47
- openSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
47
+ openSync<Ctr extends FW.LayerController = FW.LayerController>(
48
+ data: FW.LayerOpenArgs,
49
+ ): Ctr {
48
50
  return this.openManager.openLayerSync(data) as Ctr;
49
51
  }
50
52
 
51
53
  /**
52
54
  * 显示layer并恢复所有节点事件
53
55
  */
54
- displayLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
56
+ displayLayer<Ctr extends FW.LayerController = FW.LayerController>(
57
+ ctr: Ctr,
58
+ ): Ctr {
55
59
  const layerData = ctr.layerData;
56
60
 
57
- if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
61
+ if (
62
+ !this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
63
+ ) {
58
64
  FW.Log.warn(`display layer failed,layer name : ${layerData.layerName}`);
59
65
  return;
60
66
  }
@@ -74,9 +80,13 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
74
80
  /**
75
81
  * 隐藏layer并隐藏所有节点事件
76
82
  */
77
- hideLayer<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Ctr {
83
+ hideLayer<Ctr extends FW.LayerController = FW.LayerController>(
84
+ ctr: Ctr,
85
+ ): Ctr {
78
86
  const layerData = ctr.layerData;
79
- if (!this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)) {
87
+ if (
88
+ !this.dataManager.getLayerMap().has(ctr.layerData.controllerConstructor)
89
+ ) {
80
90
  FW.Log.warn(`hide layer failed,layer name : ${layerData.layerName}`);
81
91
  return;
82
92
  }
@@ -120,7 +130,9 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
120
130
  for (let i = 0; i < count; i++) {
121
131
  let layerData = this.stackManager.pop();
122
132
  let ctr = layerData.controller;
123
- if (!this.dataManager.getLayerMap().has(layerData.controllerConstructor)) {
133
+ if (
134
+ !this.dataManager.getLayerMap().has(layerData.controllerConstructor)
135
+ ) {
124
136
  return;
125
137
  }
126
138
  if (cc.isValid(ctr.layer?.node)) {
@@ -151,7 +163,9 @@ export class FWLayerManager extends FWManager implements FW.LayerManager {
151
163
  /**
152
164
  * 关闭layer
153
165
  */
154
- async close<Ctr extends FW.LayerController = FW.LayerController>(ctr: Ctr): Promise<Ctr> {
166
+ async close<Ctr extends FW.LayerController = FW.LayerController>(
167
+ ctr: Ctr,
168
+ ): Promise<Ctr> {
155
169
  if (!ctr) return;
156
170
 
157
171
  return FW.Entry.promiseMgr.execute(async (resolve, reject) => {
@@ -242,7 +256,8 @@ export class FWLayerData<T extends FW.LayerController = FW.LayerController>
242
256
  class FWLayerDataManager {
243
257
  private layerMap: Map<new () => FW.LayerController, FWLayerData> = new Map();
244
258
  private layerRegistry: Set<new () => FW.LayerController> = new Set();
245
- private layerControllerFactory: FWLayerControllerFactory = new FWLayerControllerFactory();
259
+ private layerControllerFactory: FWLayerControllerFactory =
260
+ new FWLayerControllerFactory();
246
261
  /**
247
262
  * 获取已存在的Layer
248
263
  */
@@ -370,7 +385,7 @@ class FWLayerDataManager {
370
385
  try {
371
386
  cb?.(null);
372
387
  } catch (e) {
373
- FW.Log.error('External ref update callback error:', e);
388
+ FW.Log.error("External ref update callback error:", e);
374
389
  }
375
390
  });
376
391
  layerData.externalReference.clear();
@@ -395,7 +410,8 @@ class FWLayerDataManager {
395
410
  }
396
411
 
397
412
  class FWLayerCreateManager {
398
- private lifecycleManager: FWLayerLifecycleManager = new FWLayerLifecycleManager();
413
+ private lifecycleManager: FWLayerLifecycleManager =
414
+ new FWLayerLifecycleManager();
399
415
 
400
416
  /**
401
417
  * 创建Layer节点
@@ -476,7 +492,12 @@ class FWLayerOpenManager {
476
492
  return proxy as Ctr;
477
493
  }
478
494
 
479
- if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
495
+ if (
496
+ this.queueManager.handlePopupQueue(
497
+ layerData,
498
+ this.dataManager.getLayerMap(),
499
+ )
500
+ ) {
480
501
  return undefined;
481
502
  }
482
503
 
@@ -485,7 +506,9 @@ class FWLayerOpenManager {
485
506
  return this.asyncGenerationLayer(layerData, data);
486
507
  }
487
508
 
488
- openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(data: FW.LayerOpenArgs): Ctr {
509
+ openLayerSync<Ctr extends FW.LayerController = FW.LayerController>(
510
+ data: FW.LayerOpenArgs,
511
+ ): Ctr {
489
512
  if (!this.validateOpenData(data)) {
490
513
  return undefined;
491
514
  }
@@ -506,7 +529,12 @@ class FWLayerOpenManager {
506
529
  return proxy as Ctr;
507
530
  }
508
531
 
509
- if (this.queueManager.handlePopupQueue(layerData, this.dataManager.getLayerMap())) {
532
+ if (
533
+ this.queueManager.handlePopupQueue(
534
+ layerData,
535
+ this.dataManager.getLayerMap(),
536
+ )
537
+ ) {
510
538
  return undefined;
511
539
  }
512
540
 
@@ -529,10 +557,9 @@ class FWLayerOpenManager {
529
557
  /**
530
558
  * 异步生成Layer
531
559
  */
532
- private async asyncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
533
- layerData: FWLayerData,
534
- data: FW.LayerOpenArgs,
535
- ): Promise<Ctr> {
560
+ private async asyncGenerationLayer<
561
+ Ctr extends FW.LayerController = FW.LayerController,
562
+ >(layerData: FWLayerData, data: FW.LayerOpenArgs): Promise<Ctr> {
536
563
  try {
537
564
  const res = await this.resourceManager.loadLayerAsync(layerData);
538
565
  const ctr = this.createLayer(layerData, res, data) as Ctr;
@@ -548,10 +575,9 @@ class FWLayerOpenManager {
548
575
  /**
549
576
  * 同步创建Layer
550
577
  */
551
- private syncGenerationLayer<Ctr extends FW.LayerController = FW.LayerController>(
552
- layerData: FWLayerData,
553
- data: FW.LayerOpenArgs,
554
- ): Ctr {
578
+ private syncGenerationLayer<
579
+ Ctr extends FW.LayerController = FW.LayerController,
580
+ >(layerData: FWLayerData, data: FW.LayerOpenArgs): Ctr {
555
581
  try {
556
582
  const res = this.resourceManager.loadLayerSync(layerData);
557
583
  const ctr = this.createLayer(layerData, res, data) as Ctr;
@@ -587,22 +613,30 @@ class FWLayerOpenManager {
587
613
 
588
614
  this.createManager.setupLayerLifecycle(layer, layerData.controller);
589
615
 
590
- if (layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT) {
616
+ if (
617
+ layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT
618
+ ) {
591
619
  this.stackManager.push(layerData);
592
620
  }
593
621
 
594
622
  this.dataManager.removeFromRegistry(layerData.controllerConstructor);
595
623
 
596
- layerData.controllerProxy = this.dataManager.createControllerProxy(layerData);
624
+ layerData.controllerProxy =
625
+ this.dataManager.createControllerProxy(layerData);
597
626
 
598
627
  return layerData.controllerProxy as Ctr;
599
628
  }
600
629
  }
601
630
 
602
631
  class FWLayerResourceManager {
603
- async loadLayerAsync(layerData: FWLayerData): Promise<{ asset: cc.Prefab; uuid: string }> {
632
+ async loadLayerAsync(
633
+ layerData: FWLayerData,
634
+ ): Promise<{ asset: cc.Prefab; uuid: string }> {
604
635
  try {
605
- const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(layerData.layerAssetProperty);
636
+ const res = await FW.Entry.resMgr.loadAssetData<cc.Prefab>(
637
+ layerData.layerAssetProperty,
638
+ );
639
+ if (!res) return undefined;
606
640
  res.user = layerData.layerName;
607
641
  res.autoRelease = layerData.controller.autoRelease;
608
642
  res.dependentBundle = layerData.controller.layerAssetProperty.bundle;
@@ -616,7 +650,9 @@ class FWLayerResourceManager {
616
650
  loadLayerSync(layerData: FWLayerData): { asset: cc.Prefab; uuid: string } {
617
651
  layerData.layerAssetProperty.bundle =
618
652
  layerData.layerAssetProperty.bundle || FW.Entry.bundleName;
619
- const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(layerData.layerAssetProperty);
653
+ const res = FW.Entry.resMgr.getAssetData<cc.Prefab>(
654
+ layerData.layerAssetProperty,
655
+ );
620
656
  res.user = layerData.layerName;
621
657
  res.autoRelease = layerData.controller.autoRelease;
622
658
  res.dependentBundle = layerData.controller.layerAssetProperty.bundle;
@@ -628,7 +664,9 @@ class FWLayerStackManager {
628
664
  private layerStack: FWLayerData[] = [];
629
665
 
630
666
  push(layerData: FWLayerData): void {
631
- if (layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT) {
667
+ if (
668
+ layerData.controller.layerType !== FW.SystemDefine.FWLayerType.PERMANENT
669
+ ) {
632
670
  this.layerStack.push(layerData);
633
671
  }
634
672
  }
@@ -638,7 +676,9 @@ class FWLayerStackManager {
638
676
  }
639
677
 
640
678
  remove(layerData: FWLayerData): void {
641
- const index = this.layerStack.findIndex((v) => v.controller === layerData.controller);
679
+ const index = this.layerStack.findIndex(
680
+ (v) => v.controller === layerData.controller,
681
+ );
642
682
  if (index > -1) {
643
683
  this.layerStack.splice(index, 1);
644
684
  }
@@ -654,13 +694,21 @@ class FWLayerStackManager {
654
694
  }
655
695
 
656
696
  class FWLayerStateManager {
657
- private layerStates = new Map<new () => FW.LayerController, FW.SystemDefine.FWLayerState>();
658
-
659
- setState(ctrType: new () => FW.LayerController, state: FW.SystemDefine.FWLayerState): void {
697
+ private layerStates = new Map<
698
+ new () => FW.LayerController,
699
+ FW.SystemDefine.FWLayerState
700
+ >();
701
+
702
+ setState(
703
+ ctrType: new () => FW.LayerController,
704
+ state: FW.SystemDefine.FWLayerState,
705
+ ): void {
660
706
  this.layerStates.set(ctrType, state);
661
707
  }
662
708
 
663
- getState(ctrType: new () => FW.LayerController): FW.SystemDefine.FWLayerState {
709
+ getState(
710
+ ctrType: new () => FW.LayerController,
711
+ ): FW.SystemDefine.FWLayerState {
664
712
  return this.layerStates.get(ctrType) || FW.SystemDefine.FWLayerState.CLOSED;
665
713
  }
666
714
 
@@ -692,7 +740,9 @@ class FWLayerQueueManager {
692
740
  layerData: FWLayerData,
693
741
  layerMap: Map<new () => FW.LayerController, FWLayerData>,
694
742
  ): boolean {
695
- if (layerData.controller.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE) {
743
+ if (
744
+ layerData.controller.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE
745
+ ) {
696
746
  const hasNonPermanentLayers = Array.from(layerMap.values()).some(
697
747
  (value) => value.layerType === FW.SystemDefine.FWLayerType.POPUP_QUEUE,
698
748
  );
@@ -732,44 +782,44 @@ class FWLayerQueueManager {
732
782
 
733
783
  class FWLayerLifecycleManager {
734
784
  setupLifecycleHooks(layer: FW.Layer, ctr: FW.LayerController): void {
735
- const originalOnLoad = layer['onLoad'];
736
- layer['onLoad'] = function () {
785
+ const originalOnLoad = layer["onLoad"];
786
+ layer["onLoad"] = function () {
737
787
  originalOnLoad?.call(this);
738
788
  ctr.onLoad?.();
739
789
  };
740
790
 
741
- const originalStart = layer['start'];
742
- layer['start'] = function () {
791
+ const originalStart = layer["start"];
792
+ layer["start"] = function () {
743
793
  originalStart?.call(this);
744
794
  ctr.onStart?.();
745
795
  };
746
796
 
747
- const originalOnEnable = layer['onEnable'];
748
- layer['onEnable'] = function () {
797
+ const originalOnEnable = layer["onEnable"];
798
+ layer["onEnable"] = function () {
749
799
  originalOnEnable?.call(this);
750
800
  ctr.onEnable?.();
751
801
  };
752
802
 
753
- const originalOnDisable = layer['onDisable'];
754
- layer['onDisable'] = function () {
803
+ const originalOnDisable = layer["onDisable"];
804
+ layer["onDisable"] = function () {
755
805
  originalOnDisable?.call(this);
756
806
  ctr.onDisable?.();
757
807
  };
758
808
 
759
- const originalOnDestroy = layer['onDestroy'];
760
- layer['onDestroy'] = function () {
809
+ const originalOnDestroy = layer["onDestroy"];
810
+ layer["onDestroy"] = function () {
761
811
  originalOnDestroy?.call(this);
762
812
  ctr.onDestroy?.();
763
813
  };
764
814
 
765
- const originalUpdate = layer['update'];
766
- layer['update'] = function (dt: number) {
815
+ const originalUpdate = layer["update"];
816
+ layer["update"] = function (dt: number) {
767
817
  originalUpdate?.call(this, dt);
768
818
  ctr.onUpdate?.(dt);
769
819
  };
770
820
 
771
- const originalLateUpdate = layer['lateUpdate'];
772
- layer['lateUpdate'] = function () {
821
+ const originalLateUpdate = layer["lateUpdate"];
822
+ layer["lateUpdate"] = function () {
773
823
  originalLateUpdate?.call(this);
774
824
  ctr.onLateUpdate?.();
775
825
  };
@@ -780,12 +830,12 @@ class FWLayerControllerFactory {
780
830
  /**
781
831
  * 创建并初始化 LayerController
782
832
  */
783
- createController<Ctr extends FW.LayerController = FW.LayerController>(type: new () => Ctr): Ctr {
833
+ createController<Ctr extends FW.LayerController = FW.LayerController>(
834
+ type: new () => Ctr,
835
+ ): Ctr {
784
836
  const ctr = new type();
785
837
 
786
- if (ctr instanceof FrameworkBase) {
787
- ctr.initializeDependencies?.();
788
- }
838
+ ctr.initializeDependencies?.();
789
839
 
790
840
  return ctr;
791
841
  }
@@ -1,8 +1,10 @@
1
- import FWObject from '../utils/FWObject';
2
- import { FWObjectPool } from '../utils/FWObjectPool';
3
- import { FWManager } from './FWManager';
1
+ import { FWObjectPool } from "../utils/FWObjectPool";
2
+ import { FWManager } from "./FWManager";
4
3
 
5
- export default class FWObjectManager extends FWManager implements FW.ObjectManager {
4
+ export default class FWObjectManager
5
+ extends FWManager
6
+ implements FW.ObjectManager
7
+ {
6
8
  public initialize(): void {
7
9
  this.poolMap = new Map<string, FWObjectPool>();
8
10
  this.poolIdCounter = 0;
@@ -22,40 +24,42 @@ export default class FWObjectManager extends FWManager implements FW.ObjectManag
22
24
  private poolMap: Map<string, FWObjectPool>;
23
25
  private poolIdCounter: number = 0;
24
26
 
25
- async createObjectPool<T extends FWObject = FWObject>(
27
+ async createObjectPool<T extends FW.Object = FW.Object>(
26
28
  node: cc.Node,
27
29
  parent: cc.Node,
28
30
  tag?: string,
29
31
  ): Promise<FWObjectPool>;
30
- async createObjectPool<T extends FWObject = FWObject>(
32
+ async createObjectPool<T extends FW.Object = FW.Object>(
31
33
  prefab: cc.Prefab,
32
34
  parent: cc.Node,
33
35
  tag?: string,
34
36
  ): Promise<FWObjectPool>;
35
- async createObjectPool<T extends FWObject = FWObject>(
37
+ async createObjectPool<T extends FW.Object = FW.Object>(
36
38
  assetProperty: FW.AssetProperty,
37
39
  parent: cc.Node,
38
40
  tag?: string,
39
41
  ): Promise<FWObjectPool>;
40
- async createObjectPool<T extends FWObject = FWObject>(
42
+ async createObjectPool<T extends FW.Object = FW.Object>(
41
43
  node: cc.Node,
42
44
  parent: cc.Node,
43
45
  type?: number,
44
46
  ): Promise<FWObjectPool>;
45
- async createObjectPool<T extends FWObject = FWObject>(
47
+ async createObjectPool<T extends FW.Object = FW.Object>(
46
48
  prefab: cc.Prefab,
47
49
  parent: cc.Node,
48
50
  type?: number,
49
51
  ): Promise<FWObjectPool>;
50
- async createObjectPool<T extends FWObject = FWObject>(
52
+ async createObjectPool<T extends FW.Object = FW.Object>(
51
53
  assetProperty: FW.AssetProperty,
52
54
  parent: cc.Node,
53
55
  type?: number,
54
56
  ): Promise<FWObjectPool>;
55
- async createObjectPool<T extends FWObject = FWObject>(): Promise<FWObjectPool> {
57
+ async createObjectPool<
58
+ T extends FW.Object = FW.Object,
59
+ >(): Promise<FWObjectPool> {
56
60
  if (arguments.length < 2 || arguments.length > 3) {
57
- FW.Log.error('createObjectPool 参数数量错误,需要2-3个参数');
58
- throw new Error('Invalid arguments count');
61
+ FW.Log.error("createObjectPool 参数数量错误,需要2-3个参数");
62
+ throw new Error("Invalid arguments count");
59
63
  }
60
64
 
61
65
  let objectNode: cc.Node = null;
@@ -74,7 +78,8 @@ export default class FWObjectManager extends FWManager implements FW.ObjectManag
74
78
  objectNode = cc.instantiate(objectPrefab);
75
79
  } else {
76
80
  objectAssetProperty = resources;
77
- objectPrefab = await FW.Entry.resMgr.loadAsset<cc.Prefab>(objectAssetProperty);
81
+ objectPrefab =
82
+ await FW.Entry.resMgr.loadAsset<cc.Prefab>(objectAssetProperty);
78
83
  if (!objectPrefab) {
79
84
  throw new Error(`加载预制体失败: ${objectAssetProperty.path}`);
80
85
  }
@@ -83,14 +88,14 @@ export default class FWObjectManager extends FWManager implements FW.ObjectManag
83
88
 
84
89
  objectParent = arguments[1];
85
90
  if (!(objectParent instanceof cc.Node)) {
86
- throw new Error('第二个参数必须是 cc.Node 类型');
91
+ throw new Error("第二个参数必须是 cc.Node 类型");
87
92
  }
88
93
 
89
94
  const arg = arguments[2];
90
- if (typeof arg === 'string') {
95
+ if (typeof arg === "string") {
91
96
  objectTag = arg;
92
97
  objectType = FW.SystemDefine.FWObjectType.OPACITY;
93
- } else if (typeof arg === 'number') {
98
+ } else if (typeof arg === "number") {
94
99
  objectTag = `pool_${this.poolIdCounter++}`;
95
100
  objectType = arg;
96
101
  } else {
@@ -107,7 +112,7 @@ export default class FWObjectManager extends FWManager implements FW.ObjectManag
107
112
 
108
113
  return pool;
109
114
  } catch (error) {
110
- FW.Log.error('创建对象池失败:', error);
115
+ FW.Log.error("创建对象池失败:", error);
111
116
 
112
117
  if (objectNode && objectNode.isValid) {
113
118
  objectNode.destroy();
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@ives_xxz/framework",
3
- "version": "2.1.29",
3
+ "version": "2.1.31",
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
@@ -68,6 +68,8 @@ declare namespace FW {
68
68
  promiseMgr: PromiseManager;
69
69
  /** 性能管理器 */
70
70
  performanceMgr: PerformanceManager;
71
+ /** 通用工具类 */
72
+ utils: Utils;
71
73
  /** 场景组件 */
72
74
  scene: Scene;
73
75
  /** 当前bundle名称 */
@@ -311,6 +313,7 @@ declare namespace FW {
311
313
  getEnableObjectMap();
312
314
  getDisableObjectMap();
313
315
  getAllObjectMap();
316
+ isEmpty():boolean;
314
317
  findObjectProperty(node: cc.Node);
315
318
  findObjectProperty(component: FW.Object);
316
319
  findObjectProperty(uniqueId: number);
@@ -2040,6 +2043,30 @@ declare namespace FW {
2040
2043
  y?: number;
2041
2044
  };
2042
2045
 
2046
+
2047
+ type VirtualScrollViewListener =
2048
+ {
2049
+ onRender(element:ObjectProperty,index: number,...args:any);
2050
+ onTouchElement(element:ObjectProperty,index: number,...args:any);
2051
+ }
2052
+
2053
+ type VirtualScrollViewConfig = {
2054
+ /**
2055
+ * 列表个数
2056
+ */
2057
+ count: number;
2058
+ rollingDirection: cc.Enum<FW.SystemDefine.FWVirtualScrollViewDirection>;
2059
+ /**
2060
+ * 预制体
2061
+ */
2062
+ prefab: cc.Prefab;
2063
+ /**
2064
+ * 列表容器
2065
+ */
2066
+ container:cc.Node;
2067
+ }
2068
+
2069
+
2043
2070
  type VirtualViewListener = (item: cc.Node, id: number, ...data: any) => void;
2044
2071
  type VirtualViewComponentArgs = {
2045
2072
  /**
@@ -2346,6 +2373,10 @@ declare namespace FW {
2346
2373
  $descriptorOrInitializer?: any,
2347
2374
  ) => void;
2348
2375
 
2376
+ type Utils = {
2377
+ getFileName(url: string): string;
2378
+ }
2379
+
2349
2380
  declare function timeScale(scale: number);
2350
2381
  declare let Entry: Entry;
2351
2382
  }
@@ -2444,6 +2475,11 @@ declare namespace FW {
2444
2475
  static SUB_LOGIC = 5;
2445
2476
  }
2446
2477
 
2478
+ export class FWVirtualScrollViewDirection{
2479
+ static VERTICAL = 0;
2480
+ static HORIZONTAL = 1;
2481
+ }
2482
+
2447
2483
  /**
2448
2484
  * 对象类型
2449
2485
  */