2.4.3版本动态合图功能使用位图字体BUG

  • Creator 版本: 2.4.3

  • 目标平台: 网页

  • 重现方式:新建一个节点,挂上cc.Label,然后给label设置位图资源,运行游戏,再更新label组件的string属性

能给个demo?

抱歉昨天太晚了,急着睡觉,再次声明上文中的方式不能复现此bug,没有仔细测试这个BUG复现的原因。给@jare大佬添麻烦了。

这个项目是不太方便给,我搞个测试demo给你

test2.zip (1.1 MB)
demo来了,不断切换显示隐藏状态就能复现

可以合并下这个修复:

https://github.com/cocos-creator/engine/pull/7492

或者不想改引擎的话,可以先关闭 BMFont 图片的 Packable 选项。

好的谢谢大佬

Hi大佬, 现在bitmap模式的label,改变active状态的话会持续往动态合图的atlas里面添加重复的texture,这个问题已知吗?有没有计划修复一下,谢谢。

啥版本呀?

这个问题应该一直存在,每个版本都有,每次绘制bitmap label的时候,ttf.js的_calDynamicAtlas里面会先调用deleteFromDynamicAtlas删掉缓存,然后再packToDynamicAtlas把texture再合一遍。

本质上,合图判断重用是使用_id作为key,但是LabelFrame并不存在这个字段,所以没法重用

哦哦,是的,动态合图现在确实是这样

这个问题有计划处理吗?bitmap对于多语言适配是很方便的,不需要为各个语言准备bmfont了,直接用系统字就好。但是对于一些频繁打开的界面,很容易把合图图集占满