Тут был поднят вопрос об этом свойстве.
В кратце по этой теме (возможно будут коррекции):
Например, при установке autoSize="right", при увеличении текста поле будет увеличивать размер влево, а правая сторона оставаться на месте.
Если в тексте присутствует перенос на другую строку "\n" или для htmlText "
" или " [p][/p]", размер поля будет увеличиваться вниз.
Всё это никак не сказывается на выравнивание самого текста в поле.
Но стоит только установить txt.wordWrap=true; как AutoSize потеряет свою силу по горизонтали. Поле будет оставаться в своих горизонтальных размерах, и расти вниз. Может тебя ввел в заблуждение этот параметр?
Предполагаю, что текстформат никак не должен пересекаться с autoSize, т.к. отвечает за формат разметки текста в самом поле.
Ширину можно спокойно менять параметром _width. Но тут есть тонкость. autoSize будет всё равно сохранять ширину текста неизменной. При установке _width, блок текста буде смещаться по горизонтали соответственно заданной ширине, а ширина будет сохранять свое значение неизменным.
Кроме того, если добавляешь/изменяешь текст в поле, его размер, _width/_height, обновится только в следующем фрейме. Поэтому если нужен размер текста сразу после изменений текста, используй textWidth/textHeight - они обновятся сразу.
Итак, если тебе нужно поле с wordwrap-ом, меняй его размер _width, а текст выравнивай форматированием (TextFormat). autoSize будет тебе обеспечивать увеличение по вертикали.
В ином случае, autoSize сам будет менять размеры поля в нужном тебе направлении, но без авто-переноса текста.
2 комментария:
где то читал. что ошибочные значения ширины и высоты до первого вызова или следующего кадра выдаются неверные.
что-то типа доллжно помочь
var sum:Number=txt._height+txt.textHeight+txt._width+txt.textWidth;
А что это даст?
Отправить комментарий