2013-04-05 93 views
0

我在獲取文本對象的實際文本高度時出現問題。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; 

出於調試目的,我增加了以下矩形顯示文本區域

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

你可以看到灰色的方塊(即文本區域)大於實際文本。我需要區域內的實際文字大小。

+0

你可以發佈您的代碼到的jsfiddle? – SoluableNonagon 2013-04-08 13:55:56

+0

http://jsfiddle.net/peter_roca/LKNJp/52/ – jugg1es 2013-04-08 19:51:38

回答

0

你可以使用:

var metrics = context.measureText(label);