From de151dcebbb81d85e87fb6a9d490e258e691b36b Mon Sep 17 00:00:00 2001 From: dgflash Date: Wed, 7 Aug 2024 11:03:00 +0800 Subject: [PATCH] =?UTF-8?q?JsonUtil=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=A1=A8=E6=89=B9=E9=87=8F=E5=8A=A0=E8=BD=BD=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=B8=8E=E6=89=B9=E9=87=8F=E6=B8=85=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/core/utils/JsonUtil.ts | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/assets/core/utils/JsonUtil.ts b/assets/core/utils/JsonUtil.ts index a466215..55f1ddc 100644 --- a/assets/core/utils/JsonUtil.ts +++ b/assets/core/utils/JsonUtil.ts @@ -9,10 +9,10 @@ import { JsonAsset } from "cc"; import { resLoader } from "../common/loader/ResLoader"; /** 资源路径 */ -var path: string = "config/game/"; +const path: string = "config/game/"; /** 数据缓存 */ -var data: Map = new Map(); +const data: Map = new Map(); /** JSON数据表工具 */ export class JsonUtil { @@ -42,6 +42,7 @@ export class JsonUtil { } else { data.set(name, content.json); + resLoader.release(url); callback(content.json); } }); @@ -66,6 +67,7 @@ export class JsonUtil { } else { data.set(name, content.json); + resLoader.release(url); resolve(content.json); } }); @@ -73,13 +75,35 @@ export class JsonUtil { }); } + /** 加载所有配置表数据到缓存中 */ + static loadDirAsync(): Promise { + return new Promise((resolve, reject) => { + resLoader.loadDir(path, (err: Error | null, assets: JsonAsset[]) => { + if (err) { + console.warn(err.message); + resolve(false); + } + else { + assets.forEach(asset => { + data.set(asset.name, asset.json); + }); + resLoader.releaseDir(path); + resolve(true); + } + }); + }); + } + /** - * 通过指定资源名释放资源 + * 通过指定资源名释放资源内存 * @param name 资源名 */ static release(name: string) { - var url = path + name; data.delete(name); - resLoader.release(url); + } + + /** 清理所有数据 */ + static clear() { + data.clear(); } } \ No newline at end of file