Egret社区
此函数即可获取到文本字符串的像素宽度,不论是数字还是中文还是标点符号都比较精确,可用来做表情的图文混排
比如“哈哈哈[0x101]”,只要你获取到[0x101]在字符串的位置idx,然后用substring(0,idx)去取出"哈哈哈",调用此函数即可获取到“哈哈哈”后的x位置

private getTextWidth(text:string,fontsize,fontFamily) {
                var canvas = this.tCanvas || (this.tCanvas = document.createElement("canvas"));
                  var context = canvas.getContext("2d");
                  context.font = fontsize + "px " + fontFamily; //字体大小+ 字体样式 "16px Arial"注意这里是你的文本的字体大小和字体样式
                  var metrics = context.measureText(text);
                  return Math.floor(metrics.width);
        }

var idx = textLabel.text.indexOf("[0x101]");
var x = textLabel.x + this.getTextWidth(textLabel.text.substring(0,idx),textLabel.size,textLabel.fontFamily);


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

白鹭大神浩

初学乍练

积分: 2 帖子: 1 精华: 0

楼主热帖

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部