mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2024-12-26 03:38:29 +00:00
56 lines
2.5 KiB
Diff
56 lines
2.5 KiB
Diff
|
From a4decd86188d65dbabd49aeeaaccc8713968d51a Mon Sep 17 00:00:00 2001
|
|||
|
From: SmallMain <smallmain@outlook.com>
|
|||
|
Date: Tue, 21 Jun 2022 22:37:35 +0800
|
|||
|
Subject: [PATCH 15/15] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Bitmap=20=E7=BC=93?=
|
|||
|
=?UTF-8?q?=E5=AD=98=E6=A8=A1=E5=BC=8F=E5=A4=8D=E7=94=A8=E5=90=8E=E5=87=BA?=
|
|||
|
=?UTF-8?q?=E7=8E=B0=E7=9A=84=E5=90=8C=20uuid=20=E5=AF=BC=E8=87=B4?=
|
|||
|
=?UTF-8?q?=E6=AD=A3=E5=9C=A8=E4=BD=BF=E7=94=A8=E7=9A=84=E5=8A=A8=E6=80=81?=
|
|||
|
=?UTF-8?q?=E5=9B=BE=E9=9B=86=E5=8C=BA=E5=9F=9F=E8=A2=AB=E9=94=80=E6=AF=81?=
|
|||
|
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?=
|
|||
|
MIME-Version: 1.0
|
|||
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|||
|
---
|
|||
|
engine/cocos2d/core/components/CCLabel.js | 7 +++++--
|
|||
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
|||
|
|
|||
|
diff --git a/engine/cocos2d/core/components/CCLabel.js b/engine/cocos2d/core/components/CCLabel.js
|
|||
|
index 6cbfe1b..9d22219 100644
|
|||
|
--- a/engine/cocos2d/core/components/CCLabel.js
|
|||
|
+++ b/engine/cocos2d/core/components/CCLabel.js
|
|||
|
@@ -478,7 +478,7 @@ let Label = cc.Class({
|
|||
|
if (this.cacheMode === oldValue) return;
|
|||
|
|
|||
|
if (oldValue === CacheMode.BITMAP && !(this.font instanceof cc.BitmapFont)) {
|
|||
|
- this._frame && this._frame._resetDynamicAtlasFrame();
|
|||
|
+ deleteFromDynamicAtlas(this, this._frame);
|
|||
|
}
|
|||
|
|
|||
|
if (oldValue === CacheMode.CHAR) {
|
|||
|
@@ -665,9 +665,12 @@ let Label = cc.Class({
|
|||
|
this._assemblerData = null;
|
|||
|
this._letterTexture = null;
|
|||
|
if (this._ttfTexture) {
|
|||
|
+ // HACK 由于会出现多个 uuid 一样的情况,销毁时会将动态图集中的区域直接销毁,导致其它使用该区域的 Label 显示错误,所以先将 packable = false,不走销毁逻辑,在下方走 frame 的回收逻辑
|
|||
|
+ this._ttfTexture._packable = false;
|
|||
|
this._ttfTexture.destroy();
|
|||
|
this._ttfTexture = null;
|
|||
|
}
|
|||
|
+ this._resetFrame();
|
|||
|
this._super();
|
|||
|
},
|
|||
|
|
|||
|
@@ -784,7 +787,7 @@ let Label = cc.Class({
|
|||
|
}
|
|||
|
|
|||
|
if (this.cacheMode !== CacheMode.CHAR) {
|
|||
|
- this._frame._resetDynamicAtlasFrame();
|
|||
|
+ deleteFromDynamicAtlas(this, this._frame);
|
|||
|
this._frame._refreshTexture(this._ttfTexture);
|
|||
|
if (this._srcBlendFactor === cc.macro.BlendFactor.ONE && !CC_NATIVERENDERER) {
|
|||
|
this._ttfTexture.setPremultiplyAlpha(true);
|
|||
|
--
|
|||
|
2.32.0 (Apple Git-132)
|
|||
|
|