![]() |
as1, видимая часть текста в TextField
вопрос такой:
как удалить часть текста, которая не влезает в отведённое поле TextField. Например: в TextField три строки, а текста на 5 строк. я ставлю maxscroll и хочу удалить верхние две строки, которые не влезли. вот. спасибо. |
циклом, например, удаляя по 10 букв, затем бисекцией подгоняешь до буквы...
|
Просто так — никак, правильный ответ смотри выше.
|
что такое "бисекция"
|
бисекция - метод нахождения результата путем деления пополам.
полно описаний в сети, но думаю, бисекция тут все-таки не нужна. попробуй так: поскольку, скорее всего, тебе точность в 10 букв будет маловата и нужно подогнать до буквы, то, как только ты определил, что ты убрал лишнее, начинаешь прибавлять по букве до тех пор, пока не увидишь, что свойство maxscroll (а мож bottomscroll - не помню точно) станет больше на 1. Отлично. сносишь последнюю добавленную букву и всё. |
фишка в том, что это нужно для окна отображения сообщений флэш-чата, и прокручивать такие циклы при получении каждого сообщения - утомительно для плеера. Видимо придётся ограничиться кнопкой "очистить".
|
в таких случаях используется другой путь:
this.addNewMessage = function (new_message) { var max_messages = 10 if (this.messages_array.length > max_messages) { this.messages_array.shift() } this.messages_array.push(new_message) return this.messages_array.join("\n") } ............................. this.output_txt.htmlText = this.addNewMessage(new_message) |
ммм.. ну можно и сообщения отсчитывать... чё-то я сам не сообразил.. а там плюс/минус пару строк - не страшно.
Спасибо. |
отситать оказалось сложнее... сделал так:
Код:
txt_window.scroll = txt_window.maxscroll; |
| Часовой пояс GMT +4, время: 13:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.