0

我在获取文本对象的实际文本高度时遇到问题。

var btnText = new Kinetic.Text({
        x: xTracker,
        y: headerY,
        fill: '#a2b1c3',
        text: buttonText,
        width: buttonWidth,
        fontSize: 40,
        fontFamily: 'impact',
        align: 'center'
    });

以下所有方法都返回相同的数字 40,这不是文本的实际高度。

btnText.getHeight();
btnText.getTextHeight();
btnText._getTextSize().height;

出于调试目的,我添加了以下 Rect 来显示文本区域

var tmp = new Kinetic.Rect({            
            x: btnText.getPosition().x,
            y: btnText.getPosition().y,
            fill: 'rgba(0,0,0,0.3)',
            width: btnText.getWidth(),
            height: btnText.getHeight()
        });

结果如下:

在此处输入图像描述

您可以看到灰色框(即文本区域)大于实际文本。我需要该区域内的实际文本大小。

4

1 回答 1

0

你可以使用:

var metrics = context.measureText(label);
于 2013-04-13T05:02:58.447 回答