如果在 AS3 中只剩下 1 行,如何使动态文本移动到垂直中心

how to make dynamic text move to vertical center if only 1 line is left in AS3

如果只剩下 1 行,是否有办法将动态文本多行移动到中心,因为在属性面板中无法调整垂直中心。

Image 3 Lines text and 1 line text

没有默认选项,但您可以模拟它。

// Let's assume this is your TextField you need to v-align.
var TF:TextField;

// Lets also assume that TextField is still in its original place.
// Record its upper Y-coordinate and height.
var atop:Number = TF.y;
var aheight:Number = TF.height;

// These lines instruct the TextField to adjust its lower
// border so that it exactly fits the text inside.
TF.wordWrap = true;
TF.autoSize = TextFieldAutoSize.LEFT;

// Now, math time.
// The difference between original height and new (autosized) height.
var adiff:Number = aheight - TF.height;

// To vertically position the resized TextField into the center of its original
// place, you need to shift it down by half of the height difference.
// It actually works if new height is larger than original too:
// the "adiff" value will be negative and it still works out.
TF.y = atop + adiff / 2;