【发布时间】:2012-02-22 18:32:45
【问题描述】:
如何确定 Spark 标签中文本的行高(以像素为单位)?
【问题讨论】:
标签: apache-flex flex4 flex-spark
如何确定 Spark 标签中文本的行高(以像素为单位)?
【问题讨论】:
标签: apache-flex flex4 flex-spark
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;
}
【讨论】:
您是否尝试过以下方法?
var lineMetrics:TextLineMetrics = label.measureText(label.text);
var result:Number = lineMetrics.height;
【讨论】: