Flash Zone Forum > Как в TextField убрать пробелы между абзацами?
Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Как в TextField убрать пробелы между абзацами?
Flash Zone Forum > Macromedia Flash > Общие вопросы
Nekonosan
Ситуация такова. В хml есть запись, например:
<time1>
 вт.– пт.:  с 13.00 до 19.00
 сб.:  с 13.00 до 18.00
</time1>

Загружаю xml во флешку, перебрасываю текст в TextField, получается на выходе:

 вт.– пт.:  с 13.00 до 19.00

 сб.:  с 13.00 до 18.00

Как убрать эти пробелы? Есть ли какие-нибудь средства в ActionScript 2, позволяющие форматировать абзац в TextField?
tiHo
 попробуй xml.ignoreWhite=true

а для форматирования textfield'ов можно использовать методы css.
Nekonosan
Цитата(tiHo @ 19.12.2010 - 13:09) *
попробуй xml.ignoreWhite=true

а для форматирования textfield'ов можно использовать методы css.


xml.ignoreWhite=true стоит

Вся проблема в том, что, насколько я разобрался с литературой, ни AS2, ни AS3 не знают свойтсв top и bottom margin, как отвечающих за верхние и нижние отступы. Аналогично и с CSS, оно далеко не все свойства может понять.
Пробовал вести запись в xml так:
&lt;br&gt;вт.– пт.: с 13.00 до 19.00&lt;/br&gt;
&lt;br&gt;сб.: с 13.00 до 18.00&lt;/br&gt;

оно отображает втупую, не понимая HTML-кода:
<br>вт.– пт.: с 13.00 до 19.00</br>
<br>сб.: с 13.00 до 18.00</br>

Отображаю, конечно же как HTML:
txtholder.html = true;
txtholder.htmlText = about[1];

где  about[1] - то место, в котором хранится в³шеупомянутая запись.
Пробовал так же делать: about[1].toString() - не помогало.

Единственное, что пока сработало, это прописать принудительно в самом флеше:
textholder.text = "вт.– пт.: с 13.00 до 19.00\nсб.: с 13.00 до 18.00";
тогда даёт безо всяких пробелов между абзацами. Но если прописать такое же в xml, он воспринимает её как одну строку.
MustLive
Цитата
xml.ignoreWhite=true стоит

Nekonosan

Помимо этого, тебе нужно настроить само текстовое поле. И не через css, а через его свойства.

Задать отступ между абзацами можно в редакторе в настройках формата текстового поля в поле Line Spacing. Это во время дизайна (для статических текстовых полей), а если программно (для динамических текстовых полей), то задай свойство leading для TextFormat твоего текстового поля txtholder.
chingachgoog
Помним про волшебный nodeValue
Это раз.

Цитата(Nekonosan @ 19.12.2010 - 14:46) *
xml.ignoreWhite=true стоит


Это хорошо. Значит не будет лишних узлов )))
Теперь надо еще поставить condenseWhite и все будет в порядке )))

Цитата(Nekonosan @ 19.12.2010 - 14:46) *
Пробовал вести запись в xml так:
&lt;br&gt;


Так тоже можно. Но надо сделать потом финт ушами:

Код
мое_текстовое_поле.text=... значение из xml c сущностями
мое_текстовое_поле.htmlText=мое_текстовое_поле.text
Nekonosan
Итак, у меня получилось.
Для поколений грядущих выкладываю полный рецепт.

Для начала в xml файле мы пишем так.

CODE
<about name="Сервис" text="Сервис.
<br>Адрес сервиса: Украина</br>
<br>Тел.:</br>"></about>


Потом в парсере пишем так:

CODE
var myXML3 = new XML();
myXML3.ignoreWhite = true;
myXML3.load("about.xml");
myXML3.onLoad = function(success) {
if (success) {
var gr_about = myXML3.firstChild.firstChild;
...
gr_about = gr_about.nextSibling;
pic_about[1] = gr_about.attributes.picture;
serv = gr_about.attributes.text;
...
}
}


Затем в основной части:

CODE
txtholder.embedFonts = true;
txtholder.condenseWhite=true;
txtholder.textColor=0xC4BAA6;
txtholder.text=serv;
txtholder.html = true;
txtholder.htmlText=txtholder.text;
txtholder.setTextFormat(tF);


Всё работает! Уря smile.gif

Огромная благодарность товарищам, которые помогли с решением данной проблемы. Метод действительно шаманский smile.gif
MustLive
Цитата
Теперь надо еще поставить condenseWhite и все будет в порядке )))

Да, condenseWhite также стоит задать в коде (установить в true).

Цитата
Итак, у меня получилось.

Nekonosan

Хорошо, что наши подсказки тебе пригодились и ты решил эту задачу wink.gif.
Русская версия IP.Board © 2001-2014 IPS, Inc.