KineticJS实际文字高度

时间:2013-04-05 20:40:19

标签: javascript kineticjs

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

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()
        });

结果如下:

enter image description here

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

1 个答案:

答案 0 :(得分:0)

你能用:

var metrics = context.measureText(label);