Форум 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)
-   -   TextField и вывод контента. (http://www.flasher.ru/forum/showthread.php?t=109743)

Faceoff 20.03.2008 02:11

TextField и вывод контента.
 
Есть задача выводить контент в разделах, я хочу реализовать это с помощью xml+css, но страница в высоту ограничена, можно ли как-нибудь программно разбить текст? Что я имею ввиду:
я создаю this.createTextField("txt", 1, -165, -175, 320, 390);
задаю ему параметры, загружаю в него контент (это получается)

можно ли прописать условие, что если длина исходного текста превышает некоторое кол-во строк, то показать кнопки "вперед", "назад"?
Т. е. после условия должен быть код типа:
txt.htmlText += "<a href=\"asfunction:back\">Назад</a><br>";
и по этой функции вывести новый TextField ы оставшимся текстом.

Можно ли такое реализовать и как? )

Molecula 20.03.2008 02:16

Код:

TextField.textHeight
Если оно больше какого-то значения - делайте, что Вам нужно.

Faceoff 20.03.2008 02:28

Цитата:

Сообщение от Molecula
Код:

TextField.textHeight
Если оно больше какого-то значения - делайте, что Вам нужно.

Спасибо, с этим тоже уже разобрался ) Подсмотрел в хелпе
Еще один вопрос, а как мне обрезать текст и перенести его в новый TextField?

Сейчас у меня получается так:
Код:

txt.htmlText = myContent;
                if (txt.textHeight >= 390)
                {
                        txt.htmlText += "<a href=\"asfunction:forward\">Вперед</a><br>";
                }


Molecula 20.03.2008 02:51

Так?

Код:

var str:String = 'Returns a string comprising the characters between the points.';
var len:Number = str.length;
trace( str.substring(0,len/2) );


Faceoff 20.03.2008 15:55

Цитата:

Сообщение от Molecula
Так?

Код:

var str:String = 'Returns a string comprising the characters between the points.';
var len:Number = str.length;
trace( str.substring(0,len/2) );


Спасибо, направили в нужное направление!
Попробовал так как предложили вы, но в итоге сделал по другому:
Код:

                txt.htmlText = myContent;
                if (txt.textHeight >= 390)
                {
                        var str:String = txt.htmlText; // весь текст
                        _global.razdel5 = str.split("split",5);
                       
                        txt.htmlText = "<text>" + razdel5[0]; + "</text>";
                        txt.htmlText += "<forward><a href='asfunction:forward'>Вперед</a></forward>";
                }

Я вставляю в текст split и он в этом месте его разделяет, очень удобно! В итоге потом из массива его вывожу. Сейчас буду дальше делать, может еще возникнут вопросы.

Molecula 20.03.2008 17:30

Вопросы могут возникнуть СКОЛЬКО обрезать.
Просто посчитайте высоту одной строки, т.е. в зависимости от шрифта и его размера.

Ещё у Вас htmlText, соответственно, нужно будет закрывать тег.
Т.е. пришел текст:
Код:

"<b>Hi</b> to <a>all</a>"
Обрезан он может быть так:
Код:

"<b>Hi</b> to <a"
или так
Код:

"<b>Hi</b> to <a>all"
В первом случае нужно закрыть тег, дописав его.
Во втором, просто дописать закрывающийся тег.
В любом случае Вам нужно почитать про String.indexOf method, используйте поиск по форуму, тема поиска обсуждалась неоднократно.

Faceoff 20.03.2008 18:16

У меня есть книга, просто не знаю что конкретно смотреть, с вашими наводками знаю.


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

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