PDA

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


Faceoff
20.03.2008, 02:11
Есть задача выводить контент в разделах, я хочу реализовать это с помощью 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
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
Так?

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
У меня есть книга, просто не знаю что конкретно смотреть, с вашими наводками знаю.