PDA

Просмотр полной версии : Продвинутое Форматирование текста из XML


uglan
16.07.2008, 15:11
Как загрузить из XML(такого вида: <Item name="Sample" X="0" Y="0" ttext="THIS TEXT \n NEXT TEXT\r\n"/>) имеющийся там формат.

В частности строчка ttext="THIS TEXT \n NEXT TEXT\r\n"
Если просто во флеше назначить текстовому полю данное текстовое значение то форматирование сработает(текст разделится на строки в нужных местах). Если же назначить этому же текстовому полю значение переменной из XML то он просто тупо перепишет ее(THIS TEXT \n NEXT TEXT\r\n).
Вопрос: Как сделать так чтобы из XML грузилось форматирование? При этом вид самой строки должен остаться тем же:
<Item name="Sample" X="0" Y="0" ttext="THIS TEXT \n NEXT TEXT\r\n"/>

iNils
16.07.2008, 15:34
1. Используйте либо \r, либо \n. Для флеша \r\n это уже две новых строки
2. В xml \r это уже не один символ, а два обычных \ и r. Поэтому надо после загрузки реплейсить строку.
str = str.split ("\\r").join ("\r");
или
str = str.split ("\\n").join ("\n");

crazyone
16.07.2008, 15:41
"\n" подгруженное из внешнего файла — это текст. А "\n" объявленое во флешке — это спецсимвол. Нужно превратить одно в другое:
Можно так:
my_txt.text=myNode.attributes["ttext"].split("\\n").join("\n ").split("\\r").join("\r");

Можно еще при загрузке:
myxml.onData=function(src){
this.parseXML(src.split("\\n").join("\n ").split("\\r").join("\r"));
this.onLoad(true);
}

uglan
16.07.2008, 20:48
Вау! То что нужно! Всем большое спасибо!