Есть текстовое поле. В него может быть добавлен любой текст.
Есть ограничения для текстового поля. Допустим, оно не может быть больше 100px по ширине и 200px по высоте.
Текстовое поле
multiline и
wordWrap, само подстраивается под нужные размеры текста через
TextFieldAutoSize.LEFT.
Необходимо: узнать, какие размеры нужно задать текстовому полю, чтобы текст не был больше максимально возможных значений по обеим сторонам (сделаем тут допущение, что текста столько, что он в любом случае не будет вылазить по обоим сторонам).
У меня такое ощущение, что это очень легко должно реализовываться, но почему-то ничего не приходит в голову.
P.S.: Хотелось бы, чтобы всё работало примерно следующим образом:
Код AS1/AS2:
var _tf:TextField = new TextField();
this.addChild(_tf);
_tf.autoSize = TextFieldAutoSize.LEFT;
_tf.multiline = true;
_tf.wordWrap = true;
_tf.border = true;
_tf.text = "MailBtn | onLoadingError __ event..errorMessage = Error in [SomaLoader] IOErrorEvent: Error #2032: Ошибка потока. URL: http://************ ****** ****";
_tf.width = 50;
// Тут мы корректируем высоту и, хотелось бы, чтобы ширина корректировалась автоматически
if (_tf.height > 100)
{
_tf.height = 100;
}
Т.е. после корректирования одной из сторон, другая сторона автоматически корректирует свои размеры. На сколько я знаю, данный способ работает, если нам нужно уменьшить ширину текстового поля и свойство
wordWrap у него задано в
true, но в данном случае не могу понять как сделать так, чтобы работало как нужно.
По-моему, в AS2 нечто подобное можно было организовать с помощью
getTextExtent().
Буду очень благодарен за любую помощь.