From f0d14d7b7f226f1fe6acad03737e4808f18bcd79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=9D=E7=88=B7?= Date: Sat, 16 Nov 2019 23:03:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E7=AE=A1=E7=90=86=EF=BC=9A?= =?UTF-8?q?=E9=87=8A=E6=94=BE=E6=97=B6=E8=87=AA=E5=8A=A8=E8=B7=B3=E8=BF=87?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E4=BE=9D=E8=B5=96=E7=9A=84=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scene/example_ui.fire | 13 +++++++++++++ assets/Script/example/UIExample.ts | 1 + assets/Script/example/uiviews/UILogin.ts | 2 +- assets/Script/res/ResLoader.ts | 14 +++++++++++++- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/assets/Scene/example_ui.fire b/assets/Scene/example_ui.fire index 9fcda3a..3ea5c70 100644 --- a/assets/Scene/example_ui.fire +++ b/assets/Scene/example_ui.fire @@ -73,6 +73,9 @@ "_components": [ { "__id__": 5 + }, + { + "__id__": 6 } ], "_prefab": null, @@ -227,5 +230,15 @@ "_fitWidth": false, "_fitHeight": true, "_id": "105OSN3A9FN6bqyKHCAZAF" + }, + { + "__type__": "1ac13Sq8cxLKZtQe1hCgor0", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_id": "e2iDQEL+dHDKK4GSCMZ1tN" } ] \ No newline at end of file diff --git a/assets/Script/example/UIExample.ts b/assets/Script/example/UIExample.ts index b94bc6e..b2c3b48 100644 --- a/assets/Script/example/UIExample.ts +++ b/assets/Script/example/UIExample.ts @@ -1,4 +1,5 @@ import { UIConf, uiManager } from "../ui/UIManager"; +import { resLoader } from "../res/ResLoader"; // Learn TypeScript: // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/typescript.html diff --git a/assets/Script/example/uiviews/UILogin.ts b/assets/Script/example/uiviews/UILogin.ts index ff1044a..fe75a4d 100644 --- a/assets/Script/example/uiviews/UILogin.ts +++ b/assets/Script/example/uiviews/UILogin.ts @@ -9,7 +9,7 @@ export default class UILogin extends UIView { public onLogin() { // 连续打开2个界面 - uiManager.open(UIID.UIHall); + uiManager.replace(UIID.UIHall); uiManager.open(UIID.UINotice); } } diff --git a/assets/Script/res/ResLoader.ts b/assets/Script/res/ResLoader.ts index 69bca3a..631e49e 100644 --- a/assets/Script/res/ResLoader.ts +++ b/assets/Script/res/ResLoader.ts @@ -250,7 +250,9 @@ export class ResLoader { if (cacheInfo.uses.size == 0 && cacheInfo.refs.size == 0) { //如果没有uuid,就直接释放url - if (item.uuid) { + if(this._isSceneDepend(item.url)) { + cc.log("resloader skip release scene depend assets :" + item.url); + } else if (item.uuid) { cc.loader.release(item.uuid); cc.log("resloader release item by uuid :" + item.id); } else { @@ -261,6 +263,16 @@ export class ResLoader { } } + private _isSceneDepend(itemUrl) { + let scene : any = cc.director.getScene(); + let len = scene.dependAssets.length; + for( let i = 0; i < len; ++i) { + if (scene.dependAssets[i] == itemUrl) + return true; + } + return false; + } + /** * 判断一个资源能否被释放 * @param url 资源url