![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Аттчу клип в котором есть текстовое поле. Выставляю у текстового поля autoSize = true, далее пишу в него текст, но у текста пропадает последняя строка. Не подскажите в чём может быть дело и как эту проблему решить.
|
|
|||||
this.target.items.attachMovie(ex_name, name_item, this.target.items.getNextHighestDepth(), {_y: y_pos});
this.target.items[name_item].onRelease = DelegateExt.create(this, select_item, i);
this.target.items[name_item].text_mc.itext.autoSize = true;
this.target.items[name_item].text_mc.itext.text = this.items[i].name;
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Код ничего не говорит.
Приведи пример текста, пример TextFormat и параметров TextField, при которых возникает данный косяк. |
|
|||||
|
Да я впринципе и думал что он ничего не скажет.
Начал копаться в опцях текстового поля. Это происходит из-за отрицательного значения Line Spacing А задумка такова, что он обязательно должен быть отрицательным. вот часть из дебага. thickness = 0,
variable = "txt",
restrict = ,
antiAliasType = "normal",
selectable = false, background = false, sharpness = 0, length = 10,
maxhscroll = 0,
text = "Что-то ещё",
styleSheet = , borderColor = 0, textWidth = 59, scroll = 1,
bottomScroll = 1, wordWrap = true, maxChars = , hscroll = 0,
filters = ] [], html = false,
gridFitType = "pixel",
tabIndex = ,
htmlText = "Что-то ещё",
type = "dynamic",
textHeight = 13,
autoSize = "left",
border = false, password = false, maxscroll = 1, embedFonts = true,
textColor = 10921638, backgroundColor = 16777215, condenseWhite = false, multiline = true,
mouseWheelEnabled = true
|
|
|||||
|
\n я по некоторым причинам добавлять не хочу. Вообще странный глюк.
|
|
|||||
|
Регистрация: 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. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|