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

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

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

Регистрация: Nov 2009
Сообщений: 4
По умолчанию через CDATA не выводится отформатированный текст

Всем доброе утро!
Хочу вывести отформатированный текст из xml через CDATA, вроде все делаю как надо, однако текст выходит "как есть" с тегами. Я уже пробовала обращатся к нему и через братский узел и по прямой и так и сяк, подскажите в чем косяк?
Вот простой xml

Код:
?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>
<pic>
<image>images/T1.jpg</image>
<caption>
![CDATA[<font size="25px" color="990000">заголовок</font>
<font size="18px" color="000000">подзаголок</font>
<font size="18px" color="990000">номер параграфа</font>
<font size="12px" color="000000">текст</font>]]>
</caption>
</pic>
<pic>
<image>images/T2.jpg</image>
<caption>
![CDATA[<font size="25px" color="990000">заголовок</font>
<font size="18px" color="000000">подзаголок</font>
<font size="18px" color="990000">номер параграфа</font>
<font size="12px" color="000000">текст</font>]]></caption>
</pic>
</images>
а вот кусок кода который отвечает за это

Код:
function loadXML(loaded) {
if (loaded) {
 images = this.firstChild;
 image = [];
 description = [];
 total = images.childNodes.length;
 for (i=0; i<total; i++) {
  image[i] = images.childNodes[i].childNodes[0].firstChild.nodeValue;
  description[i] = images.childNodes[i].childNodes[1].firstChild.nodeValue;
}
 firstImage();
} else {
 content = "file not loaded!";
}
}
 xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images.xml");
this.createTextField("d_txt", 99, 500, 50, 450, 300);
d_txt.border = true;
d_txt.multiline = true;
d_txt.wordWrap = true;
d_txt.html = true;
d_txt.htmlText = xmlData.firstChild.nextSibling.nodeValue;
как я понимаю все дело в этой строчке:
d_txt.htmlText = xmlData.firstChild.nextSibling.nodeValue;
Прошу гляньте одним глазком плиз и намекните хотя бы что ему еще не хватает?

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код выполняется асинхронно. Вы обращаетесь к xmlData еще до загрузки xml. Присваивайте текст в обработчике onLoad.
Код AS1/AS2:
function loadXML(loaded) {
if (loaded) {
	d_txt.htmlText = xmlData.firstChild.firstChild.childNodes[1].firstChild.nodeValue;
...

Старый 13.11.2009, 10:40
vamali вне форума Посмотреть профиль Отправить личное сообщение для vamali Найти все сообщения от vamali
  № 3  
Ответить с цитированием
vamali

Регистрация: Nov 2009
Сообщений: 4
неа
не помогает
Код AS1/AS2:
function loadXML(loaded) {
if (loaded) {
	d_txt.htmlText = xmlData.firstChild.firstChild.childNodes[1].firstChild.nodeValue;
        images = this.firstChild;
		image = [];
		description = [];
		total = images.childNodes.length;
		for (i=0; i<total; i++) {
			image[i] = images.childNodes[i].childNodes[0].firstChild.nodeValue;
			description[i] = images.childNodes[i].childNodes[1].firstChild.nodeValue;
}
		firstImage();
	} else {
		content = "file not loaded!";
	}
}
		xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images.xml");
		this.createTextField("d_txt", 99, 500, 50, 450, 300);
d_txt.border = true;
d_txt.multiline = true;
d_txt.wordWrap = true;
d_txt.html = true;
все равно как хтмл не распознает

Добавлено через 4 минуты
ой-ой -ой прошу прощенья все заработало
СПасибо огромное!

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Должно все распознаваться, если только нехватка трех скобок в xml -- это не опечатка...

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

Регистрация: Nov 2009
Сообщений: 4
даа .. скобки пропали, но на самом деле они есть
Как ни странно форматирование есть а вот цвет текста почему от остается черный, хотя я ставлю другой.
И еще когда я добавляю код на листание страниц форматирование html пропадает, что за заколдованный круг?
Код AS1/AS2:
p = 0;
this.onEnterFrame = function() {
	filesize = picture.getBytesTotal();
	loaded = picture.getBytesLoaded();
	preloader._visible = true;
	if (loaded != filesize) {
		preloader.preload_bar._xscale = 100*loaded/filesize;
	} else {
		preloader._visible = false;
		if (picture._alpha<100) {
			picture._alpha += 10;
		}
	}
};
function nextImage() {
	if (p<(total-1)) {
		p++;
		if (loaded == filesize) {
			picture._alpha = 0;
			picture.loadMovie(image[p], 1);
			d_txt.text = description[p];
			picture_num();
		}
	}
}
function prevImage() {
	if (p>0) {
		p--;
		picture._alpha = 0;
		picture.loadMovie(image[p], 1);
		d_txt.text = description[p];
		picture_num();
	}
}
function firstImage() {
	if (loaded == filesize) {
		picture._alpha = 0;
		picture.loadMovie(image[0], 1);
		d_txt.text = description[0];
		picture_num();
	}
}
Добавлено через 1 час 15 минут
похоже все-таки обращение к ноду должно быть другое потому что форматирование емсть только у первого, а когда дальше по циклу идешь то уже html не поддерживается


Последний раз редактировалось vamali; 13.11.2009 в 11:29.
Старый 13.11.2009, 16:44
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Как ни странно форматирование есть а вот цвет текста почему от остается черный, хотя я ставлю другой.
Код:
<font size="25px" color="#990000">заголовок</font>
Цитата:
похоже все-таки обращение к ноду должно быть другое потому что форматирование емсть только у первого, а когда дальше по циклу идешь то уже html не поддерживается
Обращение в цикле из примера верное.

Старый 13.11.2009, 17:02
vamali вне форума Посмотреть профиль Отправить личное сообщение для vamali Найти все сообщения от vamali
  № 7  
Ответить с цитированием
vamali

Регистрация: Nov 2009
Сообщений: 4
да, спасибо Вам большое еще раз, все поправила сама уже, все работает

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

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

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


 


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


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