Форум 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)
-   -   Загрузка текста кусками (http://www.flasher.ru/forum/showthread.php?t=77819)

mzd1e 02.04.2006 19:19

Загрузка текста кусками
 
Здраствуйте, возникла такая проблема -
нужно сделать загрузку текста (соответственно из внешнего txt) частями, для того что бы не использовать скрол.
т.е. есть текстовое поле определенного размера, две кнопки (вперед, назад). загружается столько строчек, сколько влезает в это поле, при нажатии вперед - грузятся следущее кол-во строчек в это окно и т.д.
при нажатии назад - предыдущие.

был выбран следующий вариант скрипта:

//
content.multiline = true;
content.wordWrap = true;
content.html = true;
bla = new XML();
this.bla.load("bla.html");
//
this.bla.onLoad = function() {
content.htmlText = bla;
};
//
this.b_late.onRelease = function() {
content.scroll = content.bottomScroll;
};
//

но тут возникла другая проблема - как, сохранив возможность выделения текста запретить ему "скролироваться" за счет этого выделения?

если запретить никак нельзя, то как по другому сделать загрузку текста частями?

xcho_ 02.04.2006 19:24

создай текстовый документ,создай в нем несколько переменных,каждой переменной присвой свой кусок текста.А потом загружай поотдельности...с помощью LoadVariables()... - но это муторно!!!!!

mzd1e 02.04.2006 19:30

Цитата:

Сообщение от xcho_
... - но это муторно!!!!!

+придется подгонять куски текста к текстовому окну, а это, учитывая то, что там будет несколько текстовых полей, разных размеров - не выход... :(

Homo Sapiens 03.04.2006 01:54

Блин, а не проще сделать две переменные, одна будет содержать весь текст, а вторая его часть и в текстовое поле загонять вторую переменную?

mzd1e 03.04.2006 05:14

как во второй переменной определять кол-во текста ровно влезающих в текстовое поле?

Sancho.rancho 03.04.2006 06:40

Ну я бы делал так: Через "my_txt.maxChars = 200;" задал бы максимум символов в текстовом поле, потом загонял бы текст в переменную, как было сказано выше, потом через "my_str.slice(0, 200);" порезал строку на части, и загнал эти части в переменные(ну или в массив)...

Homo Sapiens 03.04.2006 13:14

Цитата:

как во второй переменной определять кол-во текста ровно влезающих в текстовое поле?
Ты хелп читать не пробовал?

__i 03.04.2006 13:49

"загрузка по частям" - а смысл? есть если у тя текста кил этак 150 и больше.

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

конкретно по твоему случаю:
для выделения и прочего пожно сделать так:
бьешь все текстовое поля на куски которые влазиют в твое поле,
сохраняешь их в массив объектов или в 3 массива
массив объектов
{txt:<кусок нужного текста>, st:<начало выделения> ,end:<конец выделения>, .... тут могут быть еще параметры которые те нужны}
ну или 3 массива каждый из которых будет хранить соответствующий параметр объекта.

тут ты сможешь это все дело даже динамически подгружать, при прокрутке грузишь то что именно тебе нужно типа my_text.php?slice_id=2 - грузим 2 кусок текста %), ну а как ты это все будешь бить на куски это уже твои проблемы...
Выбрал извращения - извращайся %))

mzd1e 03.04.2006 14:28

Цитата:

Сообщение от Homo Sapiens
Ты хелп читать не пробовал?

А ты? Найдешь, покажи, буду благодарен.
Мне предложили проанализировать _width текстового поля, отсюда некую среднюю длину строки вывести, исходя из кегля шрифта. Но этот вариант не подходит...

Бить, резать, кромсать текст на переменные, заганять в массивы... эх... Я ведь не выбирал.

Решил проблему отключив выделение и скролируя текст относительно последней видимой строчки.

Homo Sapiens 03.04.2006 15:17

TextFormat.getTextExtent. Вроде так.
А почему бы на самом деле не использовать скролинг?


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

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