在cocoscreator 2.1.0版中,加载多个fnt字体,只有第一个字体才生效的解决方案

今天研究代码的时候,把游戏的底层从2.0.10升级到了2.1.0,发现一旦游戏内引用了多个fnt字体永远只有第一个被加载的字体的有效,其他字体都是一片空白。研究了好久才知道怎么修复。
首先在2.1.0的ccc当中,获取字体的方式发生了一定变更,需要使用一个叫做atlasName的变量。
QQ20190906-175255.png

 
fgui读取字体的方式是通过直接new一个新的LabelAtlas的方式创建一个字体,然后通过读取包内的二进制数据来逐条生成字体中每个字符的信息,不断填充,最后再设置对应字体的spriteFrame来实现的。
QQ20190906-175516.png

 
其中缺少设置了atlasName变量。因为没有这个变量,所有字体的名字都被叫做了undefine,因此无论fgui当中设置了多少个字体,都只能找到第一个字体。所以才导致了后续字体无法生成的问题。只要补充进去atlasName这个变量即可。

QQ20190906-175756.png

 
已邀请:

谷主

赞同来自:

谢谢分享。这个github issue上也有。

要回复问题请先登录注册