3.5.2富文本bug

富文本,文本内容丢失
升3.5.2性能没提升,反而多了bug

  • Creator 版本: 3.5.2

  • 目标平台: 谷歌浏览器、cocos编辑器

  • 重现方式:
    必现
    “文本内容1”和“文本内容2”显示一样,“文本内容二”直接少了一行

文本内容1:
零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十

文本内容2:
零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十零一二三四五六七八九十

属性设置
image

初步定位bug
rich-text.ts
1046行 const splitArr: string[] = this.SplitLongStringApproximatelyIn2048(text, i);

富文本本来就卡
加上这么一句有bug的 卡上加卡
this.SplitLongStringApproximatelyIn2048

还有其他bug 文本超过宽度很多不换行
希望修复时,能按下面方法测试下:
固定宽度,输入一堆中文,一个个文字慢慢删(目前是必现bug),看看文本有没少了,或者没有换行

目前临时修复方案:

注释rich-text.ts
1046 1047 行
// const splitArr: string[] = this.SplitLongStringApproximatelyIn2048(text, i);
// text = splitArr.join(’\n’);

修改text-utils.ts 函数fragmentText (在3.4.2基础上修改的,目前是没测出bug)
text-utils.zip (5.0 KB)

2赞

+1,我也遇到了

这个bug要到3.7才改?

这个bug还挺严重的,因为太常用了。

我通过直接改RichText原型方法来解决了这个bug,解决方案非常临时,但是目前通过公司qa测试,过段时间上线,再看看上线是否有其他问题。

怎么解决的求共享

上面不是发了修改的代码 text-utils.zip

MagicChangeCocos.zip (2.0 KB)
把文件中的代码文件放到你的脚本目录里面就行了,然后调用$magicChangeCocos()就行了,该函数在游戏运行开始时执行一次即可。

然后这个方案我只在3.5.2下测过,其他版本我并未测试。有需要的同学,可以试试。

这个乱码是对的吗

是对的,这块是引擎的代码。我只是不想重新编译引擎,所以把依赖的方法都拷贝出来了。

可以了,大佬牛皮

3.6.3 遇到 ,后面的版本已经处理了么?