Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.06.2020, 23:14
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 1  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
По умолчанию Выравнивание и перенос строк в TextField

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

Код AS3:
_stateTextArea.autoSize = TextFieldAutoSize.RIGHT;
_stateTextArea.wordWrap = true;
Если wordWrap установлен в false, то текст корректно выравнивается по правому краю. Но стоит только установить перенос слов в true, как настройка TextFieldAutoSize "слетает" и текст выводится, выровненным по левому краю области.

что я делаю не так? Спасибо.
__________________
Не сломано - не чини!

Старый 12.06.2020, 18:08
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Автосайз вообще не для выравнивания текста, а для управления размерами и положением поля, что ясно следует из его названия.
Для выравнивания ТЕКСТА внутри поля надо использовать TextFormat#align

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

Старый 14.06.2020, 00:20
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 3  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Круто, спасибо, Wolsh, как всегда исчерпывающе! А я грешным делом думал, что autoSize - это и ширина, и выравнивание в одном флаконе
__________________
Не сломано - не чини!

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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