Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.04.2014, 14:42
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 1  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Post XML: код новой строки

Всем привет.
Подскажите, как внутри текстового узла XML задать индикатор новой строки (ну так, чтобы абзац делать).

Код AS3:
<quest id="Q001">Предложение 1. Предложение 2. Предложение 3.</quest>
Пробовал вставлять внутрь такого узла тэги типа /n, /r, но они отображаются как есть.
Еще пытался тусануть туда тэг ![CDATA[]] но тоже не работает.

Переменная (типа XML) задана в самом коде класса (то есть я не качаю её извне).

Возможно вообще такое?
Если нет, то может быть есть какой-то другой путь совмещения управляющих символов и текста.

Старый 01.04.2014, 15:21
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Вот что нашлось по этому поводу, но возможно есть и другие варианты. http://www.kirupa.com/web/xml/XMLbasics5.htm
--------------------
Или вот ещё
Код AS3:
var text:String = xml.quest.text().split("\r").join("");

Старый 01.04.2014, 15:43
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Пробовал вставлять внутрь такого узла тэги типа /n, /r, но они отображаются как есть.
слэш не в ту сторону))
Цитата:
Еще пытался тусануть туда тэг ![CDATA[]] но тоже не работает.
попробуйте не тусануть, а вставить как положено.
Можно еще использовать html-форматирование (тоже с CDATA).
__________________
Reality.getBounds(this);

Старый 02.04.2014, 10:48
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 4  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
samana, Спасибо, вот с таким кодом перенос работает:
Код AS3:
& #10;
А пример ниже мне не удалось адаптировать... Да и как-то сразу он не сильно понятен.
Ведь если мы пытаемся разделить текст по \r а потом пришить пустую строку, то... это же не перевод строки.


Wolsh
, ну просто я по памяти писал пример, на самом деле с правильным слэшем тоже не работает.
А тэг CDATA использовал так:
Код AS3:
<quest id="Q001">Предложение 1. Предложение 2.<![CDATA[\n]]>Предложение 3.</quest>
В результате получаем просто \n и хотя сам тэг CDATA не виден, он не отрабатывает почему-то.

Цитата:
Можно еще использовать html-форматирование (тоже с CDATA).
А какой-нибудь упрощенный пример можно привести?
И вообще есть впечатление, что html-форматирование будет работать если файл извне грузить, а если во Flash IDE редакторе его прописывать, то... гарантий нет.

Старый 02.04.2014, 11:51
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 5  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Упрощенный пример
Код AS3:
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);

Старый 03.04.2014, 09:32
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 6  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Аа, ну да br, совсем забыл про него.

Спасибо, возьму на вооружение.

P.S., оффтоп, Akopally-модэ он, а почему, кстати, с супер:
Код AS3:
super.addChild(txf);
Оно и без него работает.
То есть с this. , если я ничего не забыл, текстфилд добавлен в экземпляр Document Class'a...
Но если super. , то текстфилд добавлен... эээ.. родителю Document Class'a, то есть сразу на stage, что-ли. Это же не халяльно.

Старый 03.04.2014, 09:58
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Метод addChild() принадлежит классу DisplayObjectContainer, даже не Sprite, и уж тем более не Main.
Поэтому super. Указывает, что искать описание/реализацию этого метода надо в классах выше по иерархии наследования.
Наследования, а не иерархии дисплей-листа! Не путайте наследование с композицией, super c parent.
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
xml , абзац , новая строка , перевод строки
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:41.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.