Показать сообщение отдельно
Старый 11.10.2006, 04:54
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 9  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Это не совсем баг, просто autosize работает очень тупо:
высота поля = (высота строки + межстрочный отступ)*(количество строк)
Поэтому даже при положительном line space высота будет подсчитываться не совсем корректно, она будет больше на межстрочное расстояние (включите бордер у поля, чтобы убедиться). Это заметно, если надо точно позиционировать поля, но никто не жалуется, т.к. все строки на месте. А вот если расстояние между строками отрицательное - получаем высоту поля меньшую ровно на это самое межстрочное расстояние, а ведь рендерер текста выводит только полностью вместившиеся строки. По идее-то правильная формула была бы: высота поля = (высота строки)*(количество строк)+(межстрочный отступ)*(количество строк-1).
Ну так сами и доведём до этой формулы:
Код:
_txt.autoSize = "left";
_txt.text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc fermentum. Praesent nonummy libero a ligula. Praesent tempor euismod ante. Nulla magna neque, fermentum et, laoreet sed, fringilla id, libero. Nunc gravida malesuada nibh. Nunc ut odio. In hac habitasse platea dictumst.";
var realHeight = _txt._height-_txt.getTextFormat().leading;
_txt.autoSize = "none";
_txt._height = realHeight;
Этот код отлично у меня работает уже в нескольких компонентах
__________________
Верить никому нельзя. Мне - можно. :)


Последний раз редактировалось Dendroid; 11.10.2006 в 04:58.