Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   as1, видимая часть текста в TextField (http://www.flasher.ru/forum/showthread.php?t=70637)

Mnilionic 19.10.2005 02:54

as1, видимая часть текста в TextField
 
вопрос такой:
как удалить часть текста, которая не влезает в отведённое поле TextField.
Например: в TextField три строки, а текста на 5 строк. я ставлю maxscroll и хочу удалить верхние две строки, которые не влезли.
вот.
спасибо.

Iv 19.10.2005 03:58

циклом, например, удаляя по 10 букв, затем бисекцией подгоняешь до буквы...

nuran 19.10.2005 05:29

Просто так — никак, правильный ответ смотри выше.

Mnilionic 20.10.2005 02:08

что такое "бисекция"

Iv 20.10.2005 02:28

бисекция - метод нахождения результата путем деления пополам.
полно описаний в сети, но думаю, бисекция тут все-таки не нужна.

попробуй так:
поскольку, скорее всего, тебе точность в 10 букв будет маловата
и нужно подогнать до буквы, то, как только ты определил,
что ты убрал лишнее, начинаешь прибавлять по букве до тех пор,
пока не увидишь, что свойство maxscroll (а мож bottomscroll - не помню точно)
станет больше на 1.
Отлично. сносишь последнюю добавленную букву и всё.

Mnilionic 20.10.2005 02:57

фишка в том, что это нужно для окна отображения сообщений флэш-чата, и прокручивать такие циклы при получении каждого сообщения - утомительно для плеера. Видимо придётся ограничиться кнопкой "очистить".

Iv 20.10.2005 03:34

в таких случаях используется другой путь:

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)

Mnilionic 20.10.2005 03:42

ммм.. ну можно и сообщения отсчитывать... чё-то я сам не сообразил.. а там плюс/минус пару строк - не страшно.
Спасибо.

Mnilionic 21.10.2005 04:00

отситать оказалось сложнее... сделал так:
Код:

txt_window.scroll = txt_window.maxscroll;
                if (txt_window.scroll>2) {
                        selection.setFocus("txt_window");
                        do {
                                selection.setSelection(0, 10);
                                txt_window.replaceSel("...");
                                txt_window.scroll = txt_window.maxscroll;
                        } while (txt_window.scroll>2);
                }



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

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