|
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
XML: код новой строки
Всем привет.
Подскажите, как внутри текстового узла XML задать индикатор новой строки (ну так, чтобы абзац делать). Пробовал вставлять внутрь такого узла тэги типа /n, /r, но они отображаются как есть. Еще пытался тусануть туда тэг ![CDATA[]] но тоже не работает. Переменная (типа XML) задана в самом коде класса (то есть я не качаю её извне). Возможно вообще такое? Если нет, то может быть есть какой-то другой путь совмещения управляющих символов и текста. |
|
|||||
Вот что нашлось по этому поводу, но возможно есть и другие варианты. http://www.kirupa.com/web/xml/XMLbasics5.htm
-------------------- Или вот ещё |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
Можно еще использовать html-форматирование (тоже с CDATA).
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
samana, Спасибо, вот с таким кодом перенос работает:
А пример ниже мне не удалось адаптировать... Да и как-то сразу он не сильно понятен. Ведь если мы пытаемся разделить текст по \r а потом пришить пустую строку, то... это же не перевод строки. Wolsh, ну просто я по памяти писал пример, на самом деле с правильным слэшем тоже не работает. А тэг CDATA использовал так: В результате получаем просто \n и хотя сам тэг CDATA не виден, он не отрабатывает почему-то. Цитата:
И вообще есть впечатление, что html-форматирование будет работать если файл извне грузить, а если во Flash IDE редакторе его прописывать, то... гарантий нет. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Упрощенный пример
package { import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var xml:XML = <data> <quest id="Q001"> <![CDATA[Предложение 1.<br/>Предложение 2.<br/>Предложение 3.]]> </quest> </data> var txf:TextField = new TextField(); txf.width = 600; txf.x = 100; txf.y = 100; txf.multiline = true; super.addChild(txf); txf.htmlText = xml.quest.(@id == "Q001").text(); } } }
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
Аа, ну да br, совсем забыл про него.
Спасибо, возьму на вооружение. P.S., оффтоп, Akopally-модэ он, а почему, кстати, с супер: Оно и без него работает. То есть с this. , если я ничего не забыл, текстфилд добавлен в экземпляр Document Class'a... Но если super. , то текстфилд добавлен... эээ.. родителю Document Class'a, то есть сразу на stage, что-ли. Это же не халяльно. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Метод addChild() принадлежит классу DisplayObjectContainer, даже не Sprite, и уж тем более не Main.
Поэтому super. Указывает, что искать описание/реализацию этого метода надо в классах выше по иерархии наследования. Наследования, а не иерархии дисплей-листа! Не путайте наследование с композицией, super c parent.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 15:52. |
|
« Предыдущая тема | Следующая тема » |
Теги |
xml , абзац , новая строка , перевод строки |
|
|