今天脑洞一下,用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);
在浏览器中测试:
在手机上测试(安卓微信浏览器):
ios设备没经过测试,已知ttc类型字体不支持
在白鹭社区发了之后,白鹭官方在下面有回答:
yjtx 官方团队 | 3 小时前 你可以测试下如果字体加载完成在游戏开始后还行不行
测试一下,还真不行……由于字体加载比白鹭加载慢,导致字体没应用上,加个字体监听:
<script>
document.fonts.ready.then(success, fail);
function success(){
egret.runEgret({renderMode:"webgl", audioType:0});
}
function fail(){
}
</script>
当然可以用更好的方法让字体和白鹭的资源同时读取,再加个加载界面就完美了……