PDA

Просмотр полной версии : разделение xml текста на страницы.


RidingTheFlash
08.01.2009, 12:34
День Добрый! Нужна помощь, идеи по такой теме: Во флешь подгружается текст из XML (может быть как очень большой, так и не очень), необходимо чтобы во флеше этот текст разбивался по страницам ( к примеру 1000 символов на одной странице) и динамически появлялись внизу переходы по страницам с остальным текстом. Заранее спасибо.
http://s42.***********/i095/0901/b7/a1e7e3ff254e.jpg

fljot
08.01.2009, 13:05
в вакансии или http://www.google.ee/search?q=actionscript+pagination

RidingTheFlash
08.01.2009, 13:22
ага... pagination... спасибо за ключевое слово! =)

nOobCrafter
08.01.2009, 13:25
http://demiart.ru/forum/index.php?showtopic=73208&hl=
Посмотри еще тут, может на толкнет на мысль. Только непонимаю как текст будет разбиваться, если никаких маркировок нет((((

RidingTheFlash
08.01.2009, 13:37
Пример с демиарта хорош, только как модифицировать кнопки вперёд-назад на нумерации страниц (как в примере выше)?

gloomyBrain
08.01.2009, 16:19
Можно попроще и не через вакансии =)

-загрузили текст (внутри блока текста никаких тегов)
-сделали динамическое текстовое поле и заполнили его текстом
-после этого просто меняем прокрутку текста на нужную величину при нажатии на кнопку

зачем тут еще что-то? =)

nOobCrafter
08.01.2009, 16:32
http://demiart.ru/forum/index.php?showtopic=74552 если интересно то еще обсуждается тут)

Mnilionic
08.01.2009, 16:34
gloomyBrain, а номера страниц сделать не горизонтальными, а сбоку и вертикальными ))

gloomyBrain
08.01.2009, 16:37
2 Mnilionic
Может ввиду того, что я не зарегистрирован на demiart.ru? или просто потому, что у меня еще раннее утро - но я правда Вас не понял...

Mnilionic
08.01.2009, 17:18
gloomyBrain, ни разу не был на demiart.ru...
я имел ввиду это (если в кратце):
// создаём поле
var txt = this.createTextField('txt', 1, 100, 100, 250, 1);
// заполняем текстом
for(var i = 1; i <= 25; i++) txt.text += 'Строка №' + i + newline;
txt.wordWrap = true;
txt.autoSize = true;
// получаем высоту в пикселях и в строках
var max_height = txt._height;
var max_rows = txt.maxscroll;
// задаём нужную высоту поля, считаем строк влезающих на страницу
// и общее кол-во страниц
txt.autoSize = false;
txt.border = true;
txt.selectable = false;
txt._height = 100;
var page_rows = Math.floor(txt._height * max_rows / max_height);
var total_pages = Math.ceil(max_rows / page_rows);
// создаём кнопки на скорую руку
var btns = new Array();
for(var i = 0; i< total_pages; i++){
var btn = this.createTextField('btn' + i, i+10, txt._x + txt._width, txt._y + i*18, 15, 18);
btn.border = true;
btn.html = true;
btn.htmlText = '<a href="asfunction:flip,' + i + '">' + (i+1) + '</a>';
btns.push(btn);
}

// обрабатываем выбор страницы
var current_page;
function flip(to_page){
var btn = btns[to_page];
btn.textColor = 0xFF0000;
current_page.textColor = 0x000000;
current_page = btn;
txt.scroll = to_page * page_rows;
}
// стартуем с первой страницы
flip(0);

RidingTheFlash
08.01.2009, 18:11
спасибо за помощь! ;) А что вы думаете о релизации отображения не всего диапазона страниц, а нескольких первых и последней - как обычно на php форумах?

nOobCrafter
08.01.2009, 18:12
А вот еще по теме, тут думаю то что надо) http://www.ultrashock.com/tutorials/flash8/pagination.php