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

74 views Asked by At

Is there a way to move dynamical text multiline to the center if there is only 1 line left, because veritcal center cannot be adjusted in the properties panel.

Image 3 Lines text and 1 line text

1

There are 1 answers

0
Organis On BEST ANSWER

There's no default option for that, but you can emulate it.

// 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;