Сложный вопрос по FLASH
252 сообщения
#19 лет назад
Привет всем FLASHерам.Такой вопрос. Есть у меня XMLина:
[code]<main>
<member>
<![CDATA[<b>Hello</b> world !]]>
</member>
</main>[/code]
Когда я ее парсю - то получаю:
<b>Hello</b> world !
Как мне сделать, чтоб < и > обрабатывались как < и > ?
А то если вставлять в htmlText, тогда на экране <b>Hello</b> world ! вместо Hello world !
Спасибо за помощь.
51 сообщение
#19 лет назад
А обязательно html тэги должны быть включены в блок <![CDATA[....]]> ?
252 сообщения
#19 лет назад
Да. Дело в том, что все, что внутри <![CDATA[....]]> парсится не смотря на содержимое. Т.е. если я там напишу ошибку - она пропарсится все равно, ибо это как string.Я проблему уже решил самым быстрым способом. Причем случайно

Делаю 2 текстовых поля с возможностью отоброжать html. Т.е. my_text_field1.html=true;
потом делаю my_text_field1.htmlText="<b>Hello</b> world !";
Оно отображается как <b>Hello</b> world !
Делаю второе текстовое поле и для него код my_text_field2.htmlText = my_text_field1.text;
И вуаля

уже второе текстовое поле показывает Hello world !
P.S. это было надо для того, чтоб я мог внедрять внутрь XML кода - HTML код

Все гениальное - просто

Человек (клиент из США) - был просто зверски шокирован тем, что у меня получилось.
Ему 4 человека ничего не могли сделать.
Говорит, что русские, чтоб не делать лишней работы - придумают способ, что оно само делалось
Вот оно 
51 сообщение
#19 лет назад
Вобще-то блок [CDATA[]] предназначен для того что бы в нём игнорировались все тэги. И все тэги переводятся в спец последовательности символов. Вобще непонятно зачем тебе это. Всё гораздо проще:[code]this.createTextField('txt', 1, 20, 20, 300, 20);
txt.html = true;
xml = new XML("<main><member><html><b>Hello</b> world</html></member></main>")
txt.htmlText=xml.firstChild.firstChild.firstChild[/code]
Если нет возможности сменить вывод данных, или по каким-то другим причинам не обойтись без [CDATA[....]]. Тогда можно заменить мешающие нам символы сплитно-джоинтельным методом.
[code]this.createTextField('txt', 1, 20, 20, 300, 20);
txt.html = true;
xml = new XML("<main><member><![CDATA[<b>Hello</b> world !]]></member></main>")
txt.htmlText=(String(xml.firstChild.firstChild.firstChild).split('<').join('<').split('gt;').join('>'))
[/code]
Но если кодишь на АС 3, то сплиты и джойнты лучше заменить регулярным выражением.
252 сообщения
#19 лет назад
Дело в том, что код может меняться:[code]
<main><member><html><b>Hello</b> world</html></member></main>
[/code]
или
[code]
<main><member><span class="bigfont"><b><u>Hello</u></b> world</class></member></main>
[/code]
А это будет проблема. Код генерится из PHP. Как видешь, результат у меня получился гораздо проще:
[code]
my_txt.htmlText = "<b>Hello</b> world !";
txt2.htmlText = my_txt.text;
[/code]
может это варворство, но работает оочень здоро, просто и главное - безотказно с любыми допустимыми тегами

Miramax, тебе зачет. Видно, что тоже шаришь нормально


