PDA

Просмотр полной версии : TextField проблемы с авто размером по высоте (height)


vvvvvvf
18.06.2009, 22:06
Доброго времени суток.
Пытаюсь реализовать поле с ограничением только по ширине (width), а по высоте в зависимости от размера текста размер текстового поля(TextField) будет увеличиваться.

Проблема в том что в документации не нашел такого метода который устанавливал бы фиксированную ширину (width), а высоту (height) менял бы в зависимости от размера текста.

На одном форуме мне предложили просто указывать только ширину (width), а высоту (height) не указывать совсем, но такой метод не сработал :confused:


tf = new TextField();
tf.width = 150;
tf.multiline = true;
tf.wordWrap = true;
tf.text = 'текст текст текст текст текст текст текст текст текст текст текст';


пробовал даже с параметром autoSize но тоже безрезультатно.


tf = new TextField();
tf.width = 150;
tf.multiline = true;
tf.wordWrap = true;
tf.text = 'текст текст текст текст текст текст текст текст текст текст текст';
tf.autoSize =TextFieldAutoSize.LEFT;



Заранее спасибо.

kackbip
18.06.2009, 22:31
а если автосайз поставить до вставки текста? :))))
В первом кадре напишите так:

var tf:TextField = new TextField();
addChild(tf);
tf.width = 150;
tf.multiline = true;
tf.wordWrap = true;
tf.autoSize =TextFieldAutoSize.LEFT;
tf.text = 'текст текст текст текст текст текст текст текст текст текст текст';


Из хелпа:

If autoSize is set to TextFieldAutoSize.LEFT, the text is treated as left-justified text, meaning that the left margin of the text field remains fixed and any resizing of a single line of the text field is on the right margin. If the text includes a line break (for example, "\n" or "\r"), the bottom is also resized to fit the next line of text. If wordWrap is also set to true, only the bottom of the text field is resized and the right side remains fixed.

expl
18.06.2009, 22:42
Оно, вроде и так работает - увеличивается по высоте

tf.wordWrap = true;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.width = 50;
tf.text = '\n\n\n\n\n\n\n\n\nwery wery long string for this testing\n\n\n\n\n\n\n\n\n\nenother wery wery long string for this testing\nend';
trace(tf.textWidth + ' ' + tf.width);
{
graphics.lineStyle(0, 0xff0000);
graphics.drawRect(0, 0, tf.width, tf.height);
}
trace(tf.width + ' ' + tf.height);

По крайней мере, рамка построенная по размерам tf текст точно обводит

vvvvvvf
18.06.2009, 22:50
не не не вот именно, что без символа "\n" нужно! С ним то ясное дело будет работать, а вот если вообще без всяких спец символов только слова, то как быть?

kackbip
18.06.2009, 23:02
Екарный бабай. Ну смотрите же мой комментарий. Все работает :)

vvvvvvf
18.06.2009, 23:24
Екарный бабай. Ну смотрите же мой комментарий. Все работает :)

autoSize работает только по горизонтали по вертикале он не работает!
Я уже пробовал и так и так результат один тут явно нужен другой подход.

Добавлено через 1 минуту
Если пользоваться вашим кодом то текст будет отображен одной строкой без переносов сам только что проверил =(

kackbip
18.06.2009, 23:48
Че-то вы сочиняете.
22421

willis83
18.06.2009, 23:49
переносит, в принципе, если указать width и wordWrap = true; то этого хватает чтобы переносил на следующею строку.

kackbip
18.06.2009, 23:51
Да автор криво проверяет. Все работает как в доках описано.