![]() |
Загрузка текста кусками
Здраствуйте, возникла такая проблема -
нужно сделать загрузку текста (соответственно из внешнего 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; }; // но тут возникла другая проблема - как, сохранив возможность выделения текста запретить ему "скролироваться" за счет этого выделения? если запретить никак нельзя, то как по другому сделать загрузку текста частями? |
создай текстовый документ,создай в нем несколько переменных,каждой переменной присвой свой кусок текста.А потом загружай поотдельности...с помощью LoadVariables()... - но это муторно!!!!!
|
Цитата:
|
Блин, а не проще сделать две переменные, одна будет содержать весь текст, а вторая его часть и в текстовое поле загонять вторую переменную?
|
как во второй переменной определять кол-во текста ровно влезающих в текстовое поле?
|
Ну я бы делал так: Через "my_txt.maxChars = 200;" задал бы максимум символов в текстовом поле, потом загонял бы текст в переменную, как было сказано выше, потом через "my_str.slice(0, 200);" порезал строку на части, и загнал эти части в переменные(ну или в массив)...
|
Цитата:
|
"загрузка по частям" - а смысл? есть если у тя текста кил этак 150 и больше.
не лучше сделать нормальный скроллер у текстового поля, типа пользователю легче разобраться и нету гемороя? конкретно по твоему случаю: для выделения и прочего пожно сделать так: бьешь все текстовое поля на куски которые влазиют в твое поле, сохраняешь их в массив объектов или в 3 массива массив объектов {txt:<кусок нужного текста>, st:<начало выделения> ,end:<конец выделения>, .... тут могут быть еще параметры которые те нужны} ну или 3 массива каждый из которых будет хранить соответствующий параметр объекта. тут ты сможешь это все дело даже динамически подгружать, при прокрутке грузишь то что именно тебе нужно типа my_text.php?slice_id=2 - грузим 2 кусок текста %), ну а как ты это все будешь бить на куски это уже твои проблемы... Выбрал извращения - извращайся %)) |
Цитата:
Мне предложили проанализировать _width текстового поля, отсюда некую среднюю длину строки вывести, исходя из кегля шрифта. Но этот вариант не подходит... Бить, резать, кромсать текст на переменные, заганять в массивы... эх... Я ведь не выбирал. Решил проблему отключив выделение и скролируя текст относительно последней видимой строчки. |
TextFormat.getTextExtent. Вроде так.
А почему бы на самом деле не использовать скролинг? |
var str = "la";
var f = new TextFormat(); f.font = "Arial"; f.size = 15; var metrics:Object = f.getTextExtent(str); trace(metrics.textFieldWidth); А вообще читай хелп по "getTextExtent", наверно жаль что в 8 эта фича объявлена устаревшей(deprecated). |
Большое спасибо, так и сделал.
|
| Часовой пояс GMT +4, время: 03:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.