白鹭引擎使用外部字体(ttf、otf等),非转fnt

今天脑洞一下,用H5调用外部字体的方法是否可以使用在白鹭上。测试了一下发现可以使用,在这分享一下方法:首先,在样式表中定义外部使用的字体:

@font-face {
            font-family:"hanti";
            src: url("linxintijian.ttf");
            }

然后在字体标签的fontfamily属性中使用这个字体就行了,以sample为例:

        let colorLabel = new egret.TextField();
        colorLabel.textColor = 0xffffff;
        colorLabel.width = stageW - 172;
        colorLabel.textAlign = "center";
        colorLabel.text = "Hello Egret";
        colorLabel.size = 24;
        colorLabel.x = 172;
        colorLabel.y = 80;
        colorLabel.fontFamily ="hanti";
        this.addChild(colorLabel);

在浏览器中测试:

QQ20161226-171811.png

在手机上测试(安卓微信浏览器):

WechatIMG100.jpeg

ios设备没经过测试,已知ttc类型字体不支持

在白鹭社区发了之后,白鹭官方在下面有回答:
yjtx 官方团队 | 3 小时前 你可以测试下如果字体加载完成在游戏开始后还行不行
测试一下,还真不行……由于字体加载比白鹭加载慢,导致字体没应用上,加个字体监听:

    <script>
        document.fonts.ready.then(success, fail);
        function success(){
            egret.runEgret({renderMode:"webgl", audioType:0});
        }
        function fail(){
        }
    </script>

当然可以用更好的方法让字体和白鹭的资源同时读取,再加个加载界面就完美了……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,934评论 25 709
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,706评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,258评论 19 139
  • 在远方天空上看接近黎明的曙光, 淡蓝色的海天深深地印在了我的眼瞳里。 大海就在温柔的呼唤中一步一步地长大, 微笑着...
    青果无心阅读 3,388评论 0 0
  • 黑色的夜晚像一个漩涡,月亮从云中破茧而出,月色中的云在慢慢行走,走进了黑色,走出了月夜。 她像一颗明珠,照...
    利子阅读 1,337评论 0 1

友情链接更多精彩内容