PDA

Просмотр полной версии : как обрезать динамический текст?


MainD
17.09.2002, 20:02
задачка, в принципе, простая, только никак не могу справится.
есть динамическое текст поле, определённого размера, в которое подгружается текст.
если текст больше, то нужно его обкарнать под размер поля и поставить "...";
проблема только в одном, как узнать, длину видимого участка текста?
всё осложняется тем, что это htmlText и там есть <br>...

lizergil
17.09.2002, 20:36
используй указатель события TextField.onScroller
инициализируется, когда скролл текстового поля начинает изменяться в любую сторону, т. е. видимая доступное текстовое пространство начинает превышаться

MainD
17.09.2002, 20:37
можно получить количество линий текста, которые надо вырезать, или которые видны, с помощью bottomscroll и maxscroll.
но как ихвычислить в тексте. ведь стоит wordwrap и есть <br>?

упс , не заметил предыдущее пока писал ...
ok обработчик сработает, когда текст превысит размер поля, а что это даст?
он вернёт ссылку на поле и всё...

lizergil
17.09.2002, 23:46
как только сработал, удаляй последние четыре символа и ставь троеточие

MainD
18.09.2002, 14:10
я не заметил у onScroller такого замечательного св-ва:


createTextField("res", 30, dL+30, 35, startTextWidth, startTextHeight);
res.onScroller = function() {
trace("zzzzzzzzzzzzzzzzzzzzzzzzzzzz");
}
res.wordWrap = true;
res.selectable = false;
tf = new TextFormat();
tf.bullet = false;
tf.underline = false;
tf.font = "Arial";
tf.size = 12;
res.autoSize = false;
res.embedFonts = true;
res.html = true;

res.htmlText = _parent.msg;
res.setTextFormat(tf);
строчка вылетает только если selectable = true, выделять текст и двигать его, как и написано в мануале...

так как же работает onScroller?
давай уточним

MainD
18.09.2002, 15:32
скорее всего ты не правильно понял слово "динамический".
Под ним я подразумевал textField.type.
их есть два input & dinamic

lizergil
18.09.2002, 20:28
скорее всего ты не правильно понял слово "динамический".
"не правильно" это наречие и пишется вместе, а что такое динамический и Input текст я знаю прекрасно.

вот тебе пример с maxscroll и maxhscroll. см. аттач
можно было и через onScroller, но это проблематичнее, т. к. могут быть два вида переполнения поля: чисто количеством символов, и переходом каретки <BR>

удачи

MainD
19.09.2002, 16:11
спасибо за русский язык, надеюсь деньги за репетиторство брать не будешь....

ok. оставим onScroll. но у тебя здесь в цикле есть небольшая проблема, он будет крутиться, пока scroll или hscroll не изменятся...

а если не изменятся?
введи просто несколько символов.
нужно условие, когда текст меньше ширины поля.