@ives_xxz/framework 1.5.8 → 1.5.10

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.
@@ -9,6 +9,8 @@ import FWLogic from "../logic/FWLogic";
9
9
  import FWData from "../data/FWData";
10
10
  import FWSocketSender from "../service/socket/FWSocketSender";
11
11
  import FWSocketHandle from "../service/socket/FWSocketHandle";
12
+ import Framework from "../Framework";
13
+ import { FrameworkBase } from "../FrameworkBase";
12
14
 
13
15
  const ADD_EXTERNAL_REFERENCE: string = "addExternalReference";
14
16
 
@@ -258,7 +260,8 @@ export class FWLayerData<T extends FW.LayerController = FW.LayerController>
258
260
  class FWLayerDataManager {
259
261
  private layerMap: Map<new () => FW.LayerController, FWLayerData> = new Map();
260
262
  private layerRegistry: Set<new () => FW.LayerController> = new Set();
261
-
263
+ private layerControllerFactory: FWLayerControllerFactory =
264
+ new FWLayerControllerFactory();
262
265
  /**
263
266
  * 获取已存在的Layer
264
267
  */
@@ -279,7 +282,7 @@ class FWLayerDataManager {
279
282
  createLayerData<Ctr extends FW.LayerController = FW.LayerController>(
280
283
  type: new () => Ctr
281
284
  ): FW.LayerData {
282
- const ctr = new type();
285
+ const ctr = this.layerControllerFactory.createController(type);
283
286
  const ctrName = cc.js.getClassName(ctr);
284
287
  const layerData = this.generationData(ctr);
285
288
 
@@ -303,12 +306,6 @@ class FWLayerDataManager {
303
306
  const layerData = new FWLayerData();
304
307
  const layerType = ctr.layerType;
305
308
 
306
- ctr.config = FW.Entry.getComponent(FWAssetConfig);
307
- ctr.logic = FW.Entry.getComponent(FWLogic);
308
- ctr.data = FW.Entry.getComponent(FWData);
309
- ctr.sender = FW.Entry.getComponent(FWSocketSender);
310
- ctr.handle = FW.Entry.getComponent(FWSocketHandle);
311
-
312
309
  layerData.layerRenderOrder = ctr.renderOrder;
313
310
  layerData.layerAssetProperty = ctr.layerAssetProperty;
314
311
  layerData.layerType = layerType;
@@ -561,20 +558,6 @@ class FWLayerOpenManager {
561
558
  return true;
562
559
  }
563
560
 
564
- /**
565
- * 获取undefined结果
566
- */
567
- private getUndefinedResult<Ctr>(isAsync: boolean): Promise<Ctr> | Ctr {
568
- return isAsync ? Promise.resolve(undefined) : undefined;
569
- }
570
-
571
- /**
572
- * 包装结果
573
- */
574
- private wrapResult<Ctr>(result: Ctr, isAsync: boolean): Promise<Ctr> | Ctr {
575
- return isAsync ? Promise.resolve(result) : result;
576
- }
577
-
578
561
  /**
579
562
  * 异步生成Layer
580
563
  */
@@ -843,3 +826,20 @@ class FWLayerLifecycleManager {
843
826
  };
844
827
  }
845
828
  }
829
+
830
+ class FWLayerControllerFactory {
831
+ /**
832
+ * 创建并初始化 LayerController
833
+ */
834
+ createController<Ctr extends FW.LayerController = FW.LayerController>(
835
+ type: new () => Ctr
836
+ ): Ctr {
837
+ const ctr = new type();
838
+
839
+ if (ctr instanceof FrameworkBase) {
840
+ ctr.initializeDependencies?.();
841
+ }
842
+
843
+ return ctr;
844
+ }
845
+ }
@@ -29,6 +29,7 @@ export default class FWPromiseManager
29
29
  const retryInterval = options.retryInterval || 0;
30
30
  let retryCount = 0;
31
31
  let timerSchedule: FW.TimerSchedule;
32
+
32
33
  const createPromise = (): Promise<T> => {
33
34
  return new Promise<T>((resolve, reject) => {
34
35
  if (options.timeout && options.timeout > 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ives_xxz/framework",
3
- "version": "1.5.8",
3
+ "version": "1.5.10",
4
4
  "description": "cocoscreator 2.x mvc framework",
5
5
  "main": "index.js",
6
6
  "keywords": [