从Laya项目编了个微信小游戏版本,但是字体没有生效。在网上查到都提到了要使用wx.loadFont接口,但是加载完也没有生效。
测试过程:
在项目中使用wx源生接口加载,(使用android手机,真机调试)如果本地加载不到 ttf,则从远端加载并保存到本地。接入使用wx.loadFont,加载完成后再加载游戏。(代码见下)
在真机上能看到 wx.loadFont 的结果与字体的名字是一致的了,也执行了后续代码,但是字体不生效啊。
这个字体到底应该如何做才能生效呢?
const font_name = "abcdefg.ttf"
const fs = wx.getFileSystemManager()
let that = this
fs.getFileInfo({
filePath: `${wx.env.USER_DATA_PATH}/${font_name}.ttf`,
success()
{
let font = wx.loadFont(`${wx.env.USER_DATA_PATH}/${font_name}.ttf`)
console.log("font ---->>>> getFileInfo success", font , (font == font_name))
excute_main()
},
fail()
{
wx.downloadFile({
url: `${Laya.URL.basePath}${font_name}.ttf`,
success(res)
{
if (res.statusCode === 200)
{
const fs = wx.getFileSystemManager()
fs.copyFile({
srcPath: res.tempFilePath,
destPath: `${wx.env.USER_DATA_PATH}/${font_name}.ttf`,
success(res)
{
let font = wx.loadFont(`${wx.env.USER_DATA_PATH}/${font_name}.ttf`)
console.log("font ---->>>> downloadFile success ", font , (font == font_name))
excute_main()
},
fail(res)
{
console.error("font ---->>>> copyfail", res)
}
})
}
}
})
}
});
提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。