Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Размеры текстового поля (http://www.flasher.ru/forum/showthread.php?t=145352)

koIIImarik 05.10.2010 16:09

Размеры текстового поля
 
Есть текстовое поле. В него может быть добавлен любой текст.
Есть ограничения для текстового поля. Допустим, оно не может быть больше 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().

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

-De- 05.10.2010 16:25

А если при ширине 100px высота текста будет 500 в высоту?

koIIImarik 05.10.2010 16:54

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


Часовой пояс GMT +4, время: 01:56.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.