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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.07.2006, 19:49
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 1  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
По умолчанию Текст, где каждый узел XML форматировался по разному

Одно текстовое поле. В нем текст из XML.
Как сделать, чтобы каждый узел XML форматировался по разному?
Делаю вот так (фрагмент кода)-
Код:
if (xml.firstChild.childNodes[i].childNodes[0].nodeName == "title") {
	_pyti.pole.htmlText = xml.firstChild.childNodes[i].childNodes[0].childNodes[0].nodeValue;
	_pyti.pole.setTextFormat(my_format_1);
}

if (xml.firstChild.childNodes[i].childNodes[1].nodeName == "sub_txt") {
	_pyti.pole.htmlText = xml.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue;
	_pyti.pole.setTextFormat(my_format_2);
}
но в поле только текст с последнего узла XML.
Каким решением это можно обойти?

Старый 26.07.2006, 20:50
Samodelkin вне форума Посмотреть профиль Отправить личное сообщение для Samodelkin Найти все сообщения от Samodelkin
  № 2  
Ответить с цитированием
Samodelkin

Регистрация: Jul 2005
Адрес: Москва
Сообщений: 452
Отправить сообщение для Samodelkin с помощью ICQ
а так не пробывал?

Код:
_pyti.pole.htmlText += xml.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue;

Старый 26.07.2006, 21:00
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 3  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
нет ))) и что это дает?

Старый 26.07.2006, 22:50
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
как вариант: хранить параметры форматирования в атрибутах ноды..
Код:
var xml=new XML('<text><line color="0xFF0000" size="12">red text 12</line><line  bold="true" size="14">bold text 14</line></text>');
var txtNodes=xml.firstChild.childNodes;
this.createTextField("_txt",0,0,0,0,0);
_txt.autoSize=true;

for(var i=0,begin=0,end;i<txtNodes.length;i++){
	_txt.text+=txtNodes[i].firstChild.nodeValue+'\r';
	txtNodes[i].b=begin;
	txtNodes[i].e=_txt.text.length;
	begin=_txt.text.length;
}
for(var i=0;i<txtNodes.length;i++){
	var f=new TextFormat();
	for(var prop in txtNodes[i].attributes)	f[prop]=txtNodes[i].attributes[prop];
	_txt.setTextFormat(txtNodes[i].b,txtNodes[i].e,f);
	
}

Старый 26.07.2006, 23:41
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
не внимательно прочитал вопрос, что надо ориентироваться по тэгам..
так еще проще, просто форматируем текст готовыми текстформатами ..
Код:
var xml=new XML('<text><title> title text</title><sub_txt> обычный текст</sub_txt></text>');
var txtNodes=xml.firstChild.childNodes;
var sub_txt=new TextFormat("_sans",10,0x333333);
var title=new TextFormat("_sans",12,0xFF0000);
this.createTextField("_txt",0,0,0,0,0);
_txt.autoSize=true;

for(var i=0,begin=0,end;i<txtNodes.length;i++){
	_txt.text+=txtNodes[i].firstChild.nodeValue;
	txtNodes[i].f=this[txtNodes[i].nodeName];
	txtNodes[i].b=begin;
	txtNodes[i].e=_txt.text.length;
	begin=_txt.text.length;
}
for(var i=0;i<txtNodes.length;i++){
	_txt.setTextFormat(txtNodes[i].b,txtNodes[i].e,txtNodes[i].f);
}

Старый 31.07.2006, 00:04
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 6  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
silin
Ты мастер спорта по AS! )) Cпасибо огромное!
Последний вариант мне ближе. Поэтому я его тупо списал ))) А хотелось бы еще и понять

Код:
for(var i=0;i<txtNodes.length;i++){
	_txt.text+=txtNodes[i].firstChild.nodeValue;
	txtNodes[i].f=this[txtNodes[i].nodeName];
	txtNodes[i].b=begin;
	txtNodes[i].e=_txt.text.length;
	begin=_txt.text.length;
}
- вот например txtNodes[i].e=_txt.text.length; и ниже сразу уже и begin=_txt.text.length; Не догоняю я что происходит (((
- и почему, скажем _txt.setTextFormat(txtNodes[i].b,txtNodes[i].e,txtNodes[i].f); не укатывается в теле первого цикла FOR?

Я вот пытаюсь грузить текст их внешнего XML, и всё совсем плохо - не работает ((

Код:
sub_txt = new TextFormat("_sans", 10, 0x333333);
title = new TextFormat("_sans", 12, 0xFF0000);
//
xml = new XML();
xml.ignoreWhite = true;
xml.load("my_xml.xml");
xml.onLoad = function(ok) {
	if (ok) {
		_root.createTextField("_txt", 0, 0, 0, 0, 0);
		_root._txt.autoSize = true;
		//
		txtNodes = xml.firstChild.childNodes;
		//
		for (var i = 0, begin = 0, end; i<txtNodes.length; i++) {
			_root._txt.text += txtNodes[i].firstChild.nodeValue+'\r';
			txtNodes[i].b = begin;
			txtNodes[i].e = _root._txt.text.length;
			txtNodes[i].f = this[txtNodes[i].nodeName];
			begin = _root._txt.text.length;
		}
		for (var i = 0; i<txtNodes.length; i++) {
			_root._txt.setTextFormat(txtNodes[i].b, txtNodes[i].e, txtNodes[i].f);
		}
	}
};
Просто если я этого не пойму, то прийдется тупить и в дальнейшем ((

Старый 31.07.2006, 08:14
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
ты все правильно понял: эти begin,end для того, чтобы расставить соотвествующие индексы для форматирования..
а в первом цикле не проходит потому что text там на каждой итерации обновляется и форматирование(предыдущее) слетает..
насчет загрузки: смотри внимательно что грузишь/что приходит..

Старый 31.07.2006, 08:43
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 8  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
можно еще через css

Код:
var s:String = '<vasya>test</vasya>';
var css:TextField.StyleSheet = new TextField.StyleSheet ();
css.parseCSS ( 'vasya { color: #00FF00; font-family: Arial,Helvetica,sans-serif; font-size: 18px; font-weight: bold; }' );

this.createTextField ('txt', 1, 0, 0, 150, 100);

// TextField txt;
txt.border = true;
txt.html = true;
txt.styleSheet = css;
txt.htmlText = s;

Старый 01.08.2006, 18:28
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 9  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
Цитата:
насчет загрузки: смотри внимательно что грузишь/что приходит..
Вставляю текст из внешнего XML файла прямо в фильм, все форматируется.
Выношу этож же текст во внешний XML - текст отображается, но форматироваться не хочет.

Старый 01.08.2006, 22:46
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
давай пример..

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

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

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


 


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


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