Как вы получаете высоту строки текста в Spark Label? - PullRequest
1 голос
/ 31 января 2012

Как вы определяете высоту строки (в пикселях) текста в Spark Label?

Ответы [ 2 ]

2 голосов
/ 31 января 2012

ответ 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 голос
/ 31 января 2012

Вы пробовали следующее?

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