PDA

Просмотр полной версии : Размеры текстового поля


koIIImarik
05.10.2010, 16:09
Есть текстовое поле. В него может быть добавлен любой текст.
Есть ограничения для текстового поля. Допустим, оно не может быть больше 100px по ширине и 200px по высоте.
Текстовое поле multiline и wordWrap, само подстраивается под нужные размеры текста через TextFieldAutoSize.LEFT.

Необходимо: узнать, какие размеры нужно задать текстовому полю, чтобы текст не был больше максимально возможных значений по обеим сторонам (сделаем тут допущение, что текста столько, что он в любом случае не будет вылазить по обоим сторонам).

У меня такое ощущение, что это очень легко должно реализовываться, но почему-то ничего не приходит в голову.

P.S.: Хотелось бы, чтобы всё работало примерно следующим образом:

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().

Буду очень благодарен за любую помощь.

-De-
05.10.2010, 16:25
А если при ширине 100px высота текста будет 500 в высоту?

koIIImarik
05.10.2010, 16:54
2 -De-:
То высота должна стать максимально возможной (в условиях это 200px), а по ширине текстовое поле должно расшириться на столько, на сколько нужно.