O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

8.12. Sizing Text Fields to Fit Contents

Problem

You want to size a text field’s viewable area to fit the text it contains.

Solution

Use the autoSize property, or create and use a custom createAutoTextField( ) method.

Alternatively, you can also set the _width and _height properties based on the values of the textWidth and textHeight properties.

Discussion

You can set the autoSize property of a text field so that it automatically resizes itself in order to fit its contents. By default, autoSize is set to “none”, meaning that the text field does not automatically resize. There are six possible values for the autoSize property, but two possible values are redundant, leaving four effective settings:

“left” or true

Set the property to “left” or true if you want the text field to resize while fixing the upper-left corner’s position. In other words, the text field’s lower-right corner will be the point that moves when it expands and contracts.

// These two lines do the same thing.
myTextField.autoSize = "left";
myTextField.autoSize = true;
“center”

Set the property to “center” if you want the text field to be anchored at its center point. While the top of the object remains fixed, it will expand and contract downward and equally to the right and left.

myTextField.autoSize = "center";
“right”

Set the property to “right” if you want the upper-right corner of the text field to remain steady while the object expands and contracts in the direction of the lower-left corner:

myTextField.autoSize = "right"; ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required