收藏
回答

如何解决 小游戏 字体加载成功但不生效的问题?

从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)

                        }

                    })

                }

            }

        })

    }

});



回答关注问题邀请回答
收藏

1 个回答

  • 小游戏运营专员 - 宏
    小游戏运营专员 - 宏
    2023-08-18

    提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2023-08-18
    有用
    回复
登录 后发表内容