[]在UI编辑器里可以看到位图字体,但是进入游戏后没有显示,怎么解决

在UI编辑器里可以看到位图字体,但是进入游戏后没有显示,怎么解决
已邀请:

Monica - 知识达人

赞同来自: Lyr1

修改了下你的例子,在附件中。你看下吧

176*****233

赞同来自:

你有预加载位图资源吗

Lyr1

赞同来自:

@fumengjia

Monica - 知识达人

赞同来自:

先说下你这个项目中的问题吧
1.你在UI编辑模式下制作了一个UI界面,在LayaSample文件中只声明了一下这个UI界面,并没有其他的操作。不太明白你为什么要这么做
2.ziti类中预加载字体,加载完成回调你写的是this.onLoaded。导致下边onLoaded函数根本就没有走,也更走不到init函数中
3.init函数中你给test的text赋值为this.labelFont.text,根据你这一步的做法可以猜到你是想用UI界面中的那个文本,但是你在这个类里边根本就没有实例化这个类,所以也是调用不到的。。。由于第2个问题,所以代码也是走不到这里的
总之你这个项目有好几个问题,每一个问题都会导致不显示任何效果
 
解决方法:
不清楚你这边是想用已经做好的UI界面还是想用代码来实现。
我这边先说下用代码实现的方式,加载UI界面的那种方式你可以先去看下文档
用代码实现的话就不用管LayaSample类了,在ziti类中修改代码,如下所示:
//初始化引擎
Laya.init(1280,720);
//自定义文件名称
this.mFontName = "diyFont";
this.mBitmapFont = new Laya.BitmapFont();
//这里不需要扩展名,外部保证fnt与png文件同名
this.mBitmapFont.loadFont("font/test.fnt",new Laya.Handler(this,onLoaded));

function onLoaded(){
init();
}

function init(){
//如果位图字体中,没放空格,最好设置一个空格宽度
this.mBitmapFont.setSpaceWidth(10);
Laya.Text.registerBitmapFont(this.mFontName,this.mBitmapFont);

var test = new Laya.Text();
test.font=this.mFontName;
test.text = "这是一个文本";

Laya.stage.addChild(test);
}

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作