Create 1.4的位图字体创建效率太慢了,麻烦引擎组的尽快改掉。。。

Creator 版本号: 1.4.0
重现场景:

  1. 创建一个有2000个字的fnt文件。
  2. 在一个界面上放20个Label,字体全部设为这个fnt文件。
  3. 运行程序,打开这个界面,在I7的PC机上一共花了5秒钟才打开。

原因分析:

  1. CCSGLabel.js : _setBMFontFile(fntDataStr, spriteFrame) ,这个fntDataStr竟然是一个fnt文本。
  2. 调用self._config = FntLoader.parseFnt(fntDataStr); 解析成数据结构,后面用这个结构生成文字。

也就是说每创建一个fnt的Label,就会解析一遍fnt文件,创建20个Label就解析20次。然后我这个2000个字的fnt文件有468K大小。这个效率已经可想而知有多慢了。

我把原因已经列在上面了,麻烦官方尽快修掉这个BUG,一个最简单的方案是缓存住fnt的结构,共用给所有Label。
这个问题没解决,fnt没办法派上用场了。

@zilong
@jare
@panda
@wangzhe

我确认一下,别急,晚点我修复一下。

麻烦子龙了,主要是明天要给发行商看,好不容易搞了个漂亮的位图字体上去,花了一个上午把Label调成fnt了。

结果界面打开成了5秒。:joy:

麻烦尽快修掉吧,我只能先回退了。

恩 好的。

font.zip (2.2 MB)
我把字体文件也上传在附件上了,可用这个作为测试

感谢 :+1:

改成艺术字LabelAtlas效率会不会快点。

文字有几千个,用艺术字搞得定吗、

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

修复了,麻烦测试一下。

效率太快了,太感谢子龙了:tulip:

原生版也一起修复了是吧?

原生版本没有这个问题。