@ives_xxz/framework 1.0.6 → 1.0.7
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 +6 -2
- package/manager/FWAssetManager.ts +7 -1
- package/manager/FWBundleManager.ts +3 -0
- package/manager/FWResManager.ts +1 -0
- package/package.json +1 -1
- package/utils/FWTask.ts +18 -32
package/FW.d.ts
CHANGED
|
@@ -661,6 +661,10 @@ declare namespace FW {
|
|
|
661
661
|
* 资源引用计数
|
|
662
662
|
*/
|
|
663
663
|
refCount: number;
|
|
664
|
+
/**
|
|
665
|
+
* 资源属性
|
|
666
|
+
*/
|
|
667
|
+
assetProperty: AssetProperty;
|
|
664
668
|
};
|
|
665
669
|
|
|
666
670
|
type ResManager = {
|
|
@@ -881,13 +885,13 @@ declare namespace FW {
|
|
|
881
885
|
*/
|
|
882
886
|
load(assetProperty: AssetProperty): Promise<AssetData>;
|
|
883
887
|
|
|
884
|
-
loadDir(assetProperty:
|
|
888
|
+
loadDir(assetProperty: AssetProperty): Promise<FW.AssetData[]>;
|
|
885
889
|
|
|
886
890
|
/**
|
|
887
891
|
* 获取资源
|
|
888
892
|
* @param asset
|
|
889
893
|
*/
|
|
890
|
-
get(assetProperty:
|
|
894
|
+
get(assetProperty: AssetProperty): AssetData;
|
|
891
895
|
|
|
892
896
|
/**
|
|
893
897
|
* 释放资源
|
|
@@ -15,6 +15,7 @@ class FWAssetData implements FW.AssetData {
|
|
|
15
15
|
loaded: boolean;
|
|
16
16
|
autoRelease: boolean;
|
|
17
17
|
refCount: number;
|
|
18
|
+
assetProperty: FW.AssetProperty;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
export class FWAssetManager extends FWManager implements FW.AssetManager {
|
|
@@ -152,6 +153,8 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
|
|
|
152
153
|
assetData.asset = asset;
|
|
153
154
|
assetData.user = assetProperty.user;
|
|
154
155
|
assetData.refCount = 1;
|
|
156
|
+
assetData.assetProperty = assetProperty;
|
|
157
|
+
|
|
155
158
|
self.assetsMap.set(key, assetData);
|
|
156
159
|
|
|
157
160
|
cb?.(assetData);
|
|
@@ -216,6 +219,7 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
|
|
|
216
219
|
assetData.autoRelease = autoRelease;
|
|
217
220
|
assetData.asset = asset;
|
|
218
221
|
assetData.type = type;
|
|
222
|
+
assetData.assetProperty = assetProperty;
|
|
219
223
|
|
|
220
224
|
const key = `${this.createAssetMapKey({
|
|
221
225
|
bundle: bundleName,
|
|
@@ -293,7 +297,6 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
|
|
|
293
297
|
}
|
|
294
298
|
|
|
295
299
|
if (!this.has(assetProperty)) {
|
|
296
|
-
FWLog.error('获取资源失败,请先加载!');
|
|
297
300
|
return undefined;
|
|
298
301
|
}
|
|
299
302
|
const key = this.createAssetMapKey(assetProperty);
|
|
@@ -344,6 +347,9 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
|
|
|
344
347
|
}
|
|
345
348
|
|
|
346
349
|
public onDestroy(): void {
|
|
350
|
+
this.assetsMap.forEach((v) => {
|
|
351
|
+
this.release(v.assetProperty);
|
|
352
|
+
});
|
|
347
353
|
this.assetsMap.clear();
|
|
348
354
|
}
|
|
349
355
|
}
|
package/manager/FWResManager.ts
CHANGED
package/package.json
CHANGED
package/utils/FWTask.ts
CHANGED
|
@@ -47,7 +47,6 @@ export default class FWTask implements FW.Task {
|
|
|
47
47
|
taskId,
|
|
48
48
|
});
|
|
49
49
|
this.taskStartTime = FW.Entry.timeMgr.getTime();
|
|
50
|
-
FWLog.debug('执行任务开始', this.taskStartTime);
|
|
51
50
|
await this.executeFrame();
|
|
52
51
|
return this;
|
|
53
52
|
}
|
|
@@ -119,45 +118,32 @@ export default class FWTask implements FW.Task {
|
|
|
119
118
|
performance.now() - frameStart < this.frameBudget
|
|
120
119
|
) {
|
|
121
120
|
const task = this.taskQueue[0];
|
|
121
|
+
|
|
122
122
|
const taskId = (task as any).taskId || `id-${processed}`;
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (result.done) {
|
|
128
|
-
this.taskQueue.shift();
|
|
129
|
-
this.recordEvent({
|
|
130
|
-
type: FWEventDefine.TaskEvent.COMPLETE,
|
|
131
|
-
progress: 1,
|
|
132
|
-
message: '任务完成',
|
|
133
|
-
taskId,
|
|
134
|
-
});
|
|
135
|
-
} else if (result.value) {
|
|
136
|
-
this.recordEvent({
|
|
137
|
-
...result.value,
|
|
138
|
-
taskId,
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
frameTasks.push({
|
|
143
|
-
taskId: taskId,
|
|
144
|
-
result: result.done ? FWEventDefine.TaskEvent.COMPLETE : FWEventDefine.TaskEvent.YIELDED,
|
|
145
|
-
message: (result?.value as any)?.message,
|
|
146
|
-
});
|
|
147
|
-
} catch (error) {
|
|
148
|
-
FWLog.error('执行任务出错', error);
|
|
124
|
+
const result = await task.next();
|
|
125
|
+
|
|
126
|
+
if (result.done) {
|
|
149
127
|
this.taskQueue.shift();
|
|
150
128
|
this.recordEvent({
|
|
151
|
-
type: FWEventDefine.TaskEvent.
|
|
152
|
-
|
|
129
|
+
type: FWEventDefine.TaskEvent.COMPLETE,
|
|
130
|
+
progress: 1,
|
|
131
|
+
message: '任务完成',
|
|
153
132
|
taskId,
|
|
154
133
|
});
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
result
|
|
158
|
-
|
|
134
|
+
} else if (result.value) {
|
|
135
|
+
this.recordEvent({
|
|
136
|
+
...result.value,
|
|
137
|
+
taskId,
|
|
159
138
|
});
|
|
160
139
|
}
|
|
140
|
+
|
|
141
|
+
frameTasks.push({
|
|
142
|
+
taskId: taskId,
|
|
143
|
+
result: result.done ? FWEventDefine.TaskEvent.COMPLETE : FWEventDefine.TaskEvent.YIELDED,
|
|
144
|
+
message: (result?.value as any)?.message,
|
|
145
|
+
});
|
|
146
|
+
|
|
161
147
|
processed++;
|
|
162
148
|
}
|
|
163
149
|
|