Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Выравнивание и перенос строк в TextField (http://www.flasher.ru/forum/showthread.php?t=215775)

Appleman 11.06.2020 23:14

Выравнивание и перенос строк в TextField
 
Друзья! Столкнулся с неожиданной и необъяснимой проблемой.
Вот такой код настройки экземпляра TextField:

Код AS3:

_stateTextArea.autoSize = TextFieldAutoSize.RIGHT;
_stateTextArea.wordWrap = true;

Если wordWrap установлен в false, то текст корректно выравнивается по правому краю. Но стоит только установить перенос слов в true, как настройка TextFieldAutoSize "слетает" и текст выводится, выровненным по левому краю области.

что я делаю не так? Спасибо.

Wolsh 12.06.2020 18:08

Автосайз вообще не для выравнивания текста, а для управления размерами и положением поля, что ясно следует из его названия.
Для выравнивания ТЕКСТА внутри поля надо использовать TextFormat#align

Добавлено через 15 минут
если просто хочется понять "логику", почему так — выравнивания текста при автосайзе это вынужденная мера; поле подстраивается под длину строки. Самой длинной строки. Допустим, у тебя в поле уже есть три строки скажем по 10 символов, и тут добавляется строка длиной 15. Если автосайз поля привязывет его координату к правому краю, оно расширяется влево (сохраняет координаты поля). Если при этом текст не выравнивать по правому краю, а по левому как обычно, то все строки должны будут ПРЫГНУТЬ влево вместе с левым краем поля, то есть изменят свое положение в пространстве непредсказуемым образом, что недопустимо)))) Именно для этого при установке правого автосайза включается выравнивание вправо.
Теперь дальше — если ты включаешь перенос текста, то автосайз по ширине больше не нужен, поле будет менять только высоту, перенося текст который не вошел по ширине на следующую строку. Значит никто влево прыгать не будет и выравнивание по правому краю не нужно.

Appleman 14.06.2020 00:20

Круто, спасибо, Wolsh, как всегда исчерпывающе! А я грешным делом думал, что autoSize - это и ширина, и выравнивание в одном флаконе :)


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

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