@ives_xxz/framework 2.1.25 → 2.1.27

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.
@@ -7,12 +7,15 @@ import { FWManager } from './FWManager';
7
7
  export class FWResManager extends FWManager implements FW.ResManager {
8
8
  private bundleMgr: FW.BundleManager;
9
9
  private assetMgr: FW.AssetManager;
10
-
10
+ private rejectHandlerListener: FW.ResRejectHandlerListener;
11
11
  public initialize() {
12
12
  this.bundleMgr = new FWBundleManager(this);
13
13
  this.assetMgr = new FWAssetManager(this);
14
14
  }
15
15
 
16
+ registerRejectHandler(listener: FW.ResRejectHandlerListener): void {
17
+ this.rejectHandlerListener = listener;
18
+ }
16
19
  /**
17
20
  * 加载bundle
18
21
  * @param bundleName
@@ -66,6 +69,7 @@ export class FWResManager extends FWManager implements FW.ResManager {
66
69
 
67
70
  resolve(bundle);
68
71
  } catch (e) {
72
+ this.rejectHandlerListener?.loadBundleHandler?.(e, bundleName);
69
73
  reject(e);
70
74
  }
71
75
  }, FWSystemConfig.PromiseConfig.loadBundle).promise,
@@ -87,15 +91,19 @@ export class FWResManager extends FWManager implements FW.ResManager {
87
91
  }
88
92
 
89
93
  async loadRemote<T extends cc.Asset = cc.Asset>(url: string, texture?: boolean): Promise<T> {
90
- const asset = await this.assetMgr.loadRemote(url);
91
- if (texture) {
92
- return asset as T;
93
- } else {
94
- if (asset instanceof cc.Texture2D) {
95
- return new cc.SpriteFrame(asset) as unknown as T;
96
- } else {
94
+ try {
95
+ const asset = await this.assetMgr.loadRemote(url);
96
+ if (texture) {
97
97
  return asset as T;
98
+ } else {
99
+ if (asset instanceof cc.Texture2D) {
100
+ return new cc.SpriteFrame(asset) as unknown as T;
101
+ } else {
102
+ return asset as T;
103
+ }
98
104
  }
105
+ } catch (e) {
106
+ this.rejectHandlerListener?.loadResHandler?.(e, url);
99
107
  }
100
108
  }
101
109
 
@@ -130,7 +138,11 @@ export class FWResManager extends FWManager implements FW.ResManager {
130
138
  * @returns
131
139
  */
132
140
  async loadAssetData<T extends cc.Asset>(assetProperty: FW.AssetProperty) {
133
- return this.process<T>(await this.assetMgr.load(assetProperty));
141
+ try {
142
+ return this.process<T>(await this.assetMgr.load(assetProperty));
143
+ } catch (e) {
144
+ this.rejectHandlerListener?.loadResHandler?.(e, assetProperty.path);
145
+ }
134
146
  }
135
147
  /**
136
148
  * 加载资源
@@ -141,11 +153,15 @@ export class FWResManager extends FWManager implements FW.ResManager {
141
153
  assetProperty: FW.AssetProperty,
142
154
  texture?: boolean,
143
155
  ): Promise<T> {
144
- const res = await this.assetMgr.load(assetProperty);
145
- if (texture) {
146
- return res.asset as T;
156
+ try {
157
+ const res = await this.assetMgr.load(assetProperty);
158
+ if (texture) {
159
+ return res.asset as T;
160
+ }
161
+ return this.process<T>(res).asset as T;
162
+ } catch (e) {
163
+ this.rejectHandlerListener?.loadResHandler?.(e, assetProperty.path);
147
164
  }
148
- return this.process<T>(res).asset as T;
149
165
  }
150
166
 
151
167
  async preLoad(assetProperty: FW.AssetProperty | FW.AssetProperty[]) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ives_xxz/framework",
3
- "version": "2.1.25",
3
+ "version": "2.1.27",
4
4
  "description": "cocoscreator 2.x mvc framework",
5
5
  "main": "index.js",
6
6
  "keywords": ["123456"],
package/types/FW.d.ts CHANGED
@@ -1007,6 +1007,10 @@ declare namespace FW {
1007
1007
  assetProperty: AssetProperty;
1008
1008
  };
1009
1009
 
1010
+ type ResRejectHandlerListener = {
1011
+ loadResHandler:(err: Error | null, asset: AssetProperty | string | null) => void;
1012
+ loadBundleHandler:(err: Error | null, bundle: string | null) => void;
1013
+ }
1010
1014
  /**
1011
1015
  * 资源管理器 - 负责游戏资源的加载、获取和释放等操作
1012
1016
  */
@@ -1016,7 +1020,8 @@ declare namespace FW {
1016
1020
 
1017
1021
  /** 销毁方法 */
1018
1022
  onDestroy(): void;
1019
-
1023
+ /** 注册拒绝处理器 */
1024
+ registerRejectHandler(listener: ResRejectHandlerListener): void;
1020
1025
  /**
1021
1026
  * 加载指定bundle
1022
1027
  * @param bundleName - bundle名称