#actionscript-3 #e4x #cdata
Вопрос:
При работе с CSS внутри XML, таких как
<span class="IwuvAS3"></span>
при анализе во flash, если я не использую CDATA, как показано ниже:
<![CDATA[<span class="IwuvAS3"></span>]]>
затем проанализированные данные опускаются вниз по строке для каждого »
При анализе данных в однострочном текстовом поле ничего не отображалось, потому что на самом деле оно было ниже строки. Как только я заворачиваю его внутрь CDATA
, он отлично работает. Я играл с prettyIndent
, и, как я понимаю ignoreWhite
, это верно по умолчанию.
Есть ли способ проанализировать данные без использования CDATA
и сохранить подразумеваемые разрывы строк?
ИЗМЕНИТЬ 1 (10/10/08): Спасибо, но на самом деле я ищу функцию или метод. Избежать каждого из них гораздо сложнее, чем использовать CDATA. Единственная причина, по которой я не хочу использовать CDATA, заключается в том, что меня учили держаться от этого подальше. Если у ActionScript есть метод, связанный с обработкой XML E4X, который устранит необходимость обертывания моего XML в CDATA, я хотел бы знать об этом.
ПРАВКА 1 (15.10.08): Спасибо, Филипп! Я никогда бы не подумал, что форматирование HTML во Flash рассматривается как пробелы. Ответ был таков:
textField.condenseWhite = true;
<3AS3
Ответ №1:
Установите свойству TextField condenseWhite значение true — так что только теги < br/> будут генерировать разрывы строк.
Комментарии:
1. Большое спасибо, я никогда бы не подумал, что flash будет рассматривать <span class=»»> как пробел. Это сработало идеально! CDATA — ЭТО ЗЛО!
2. сам span не добавляет пробелы, но Flash автоматически переформатирует XML, когда он преобразуется в текст. Таким образом, узлы XML и текстовые элементы получают отступы — из этого отступа образуются дополнительные пробелы.
Ответ №2:
Вместо этого вы могли бы избежать символов » < » (и amp;, «, >, ‘, среди прочих) как сущностей.