2012-01-31 53 views

回答

2

keyle的回答只会给你文字的高度,而不是实际的'lineHeight'风格。您可以轻松地获得这种风格是这样的:

myLabel.getStyle("lineHeight"); 

的问题是,这会返回一个相对值(百分比)或绝对值(以像素为单位)。默认 - 如果没有lineHeight明确设置 - 是"120%"

因此,这里是我们怎样才能在这两种情况下,在像素值:

var lineHeightStyle:* = myLabel.getStyle("lineHeight"); 

//its already a value in pixels 
if (lineHeightStyle is Number) var lineHeight:Number = lineHeightStyle; 
//it's a relative value: let's calculate 
else { 
    var lineMetrics:TextLineMetrics = myLabel.measureText(myLabel.text); 
    //get the numeric value from the string and divide it by 100 
    var ratio:Number = int(lineHeightStyle.match(/\d+/)[0])/100; 
    lineHeight = lineMetrics.height * ratio; 
} 
1

您是否尝试过以下方法?

var lineMetrics:TextLineMetrics = label.measureText(label.text); 
var result:Number = lineMetrics.height;