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

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

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

Регистрация: Oct 2007
Сообщений: 32
Отправить сообщение для The_VooDOo_O с помощью MSN
Cool XML Parsing (+ неразбериха с переменными)

Если XML документ вида:
Код:
<Banner>
  <textBanner size="20" color="#FF0000" url="http://www.ya.ru/"> My text!!!</textBanner>
</Banner>
, где size - размер текста, color - цвет, url - ссылка и "My text!!!" содержимое того самого DynamicText'a.

проблема в общем в том что я не могу никак из XML документа вытянуть нужную информацию...
Особенно меня путают "Дочерние, братские, родительские узлы" прочитанные в одном мануале... помогите разобраться!
Код:
banner_xml = new XML();
banner_xml.onLoad = startBannerShow();
banner_xml.load("banner.xml");

/*function startBannerShow(success) {
	if (success == true) {
//			rootNode = banner_xml.firstChild;
//			firstSlideNode = rootNode.firstChild;
//			text_banner = rootNode.attributes.textBanner;
	}
}
ну короче мои попытки не увенчались успехом
да, еще один аспект). Функция startBannerShow должна возращать что-то? (return) ? или переменная text_banner будет видна только в теле ф-ции?
Код:
banner_xml.onLoad = startBannerShow();
banner_xml.load("banner.xml");
порядок такой должен быть? (так в мануале который я смотрел, хотя логически по моемому должно быть наоборот)

P.S. и еще один вопрос.. связанный с перменными...
будет ли видна перменная созданная в первом фрейме "видна", допустим, с MovieClip'e? Есть такое понятие как глобальные переменные, кототрые видны в любом месте *.fla? Есть какие "правила" чтоли?)


Последний раз редактировалось The_VooDOo_O; 14.10.2007 в 14:24.
Старый 14.10.2007, 14:26
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Возможно это поможет: banner_xml.ignoreWhite = true;

Старый 14.10.2007, 14:29
The_VooDOo_O вне форума Посмотреть профиль Отправить личное сообщение для The_VooDOo_O Найти все сообщения от The_VooDOo_O
  № 3  
Ответить с цитированием
The_VooDOo_O

Регистрация: Oct 2007
Сообщений: 32
Отправить сообщение для The_VooDOo_O с помощью MSN
Цитата:
Сообщение от udaaff
Возможно это поможет: banner_xml.ignoreWhite = true;
нет) это не поможет))) эта строка стояла у меня) я её затер, при добавлении в пост, я так и не понял что она делает)

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
text_banner = rootNode.attributes.textBanner;
у вас атрибута textBanner нету. Mожно, например вывести size:
Код:
firstSlideNode.attributes.size.
Если вы хотите вывести значение текстового узла:
Код:
rootNode.firstChild.firstChild.nodeValue
. Да, и строчечку
Код:
banner_xml.ignoreWhite = true
, верните на место.


Последний раз редактировалось udaaff; 14.10.2007 в 14:50.
Старый 14.10.2007, 16:06
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 5  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Код:
banner_xml.onLoad = startBannerShow();
функцию нужно присваивать, а не вызывать
Код:
banner_xml.onLoad = startBannerShow;


Последний раз редактировалось Mnilionic; 14.10.2007 в 17:07.
Старый 14.10.2007, 17:21
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 6  
Ответить с цитированием
Chas
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
Код:
banner_xml = new XML();
banner_xml.onLoad = startBannerShow;
banner_xml.load("banner.xml");
тут тебе правильно сказали, onLoad присваивай не РЕЗУЛЬТАТ выполнения функции, а указатель на нее. порядок - сначала onload, потом load или наоборот - не имеет значение, потому что функция, на которую указывает onLoad будет вызвана намного позже - аж когда xml-ка загрузится. это вообще может быть вообще через пару кадров.

далее как парсим:
Код:
function startBannerShow(success) {
	if (success == true) {
		rootNode = banner_xml.firstChild; //= <banner>...</banner>
		node = rootNode.firstChild; //=<textBanner>...</textBanner>
                        //получаем значения атрибутов
                        size=node.attributes.size;
                        color=node.attributes.color;
                        ...
                        //получаем содержимое узла <textBanner>
                        text=node.firstChild.nodeValue; //=My text!!!
                        }
}
примечание. если у тебя несколько <textBanner> и тебе их все надо пройти, то для этого нужно использовать другую конструкцию:
Код:
for (i=0; i<rootNode.childNodes.length;i++){
     node = rootNode.childNodes[i];
     ...
}
__________________
~
Never trouble trouble till trouble troubles you!


Последний раз редактировалось Chas; 14.10.2007 в 17:23.
Старый 15.10.2007, 16:45
The_VooDOo_O вне форума Посмотреть профиль Отправить личное сообщение для The_VooDOo_O Найти все сообщения от The_VooDOo_O
  № 7  
Ответить с цитированием
The_VooDOo_O

Регистрация: Oct 2007
Сообщений: 32
Отправить сообщение для The_VooDOo_O с помощью MSN
Во спасибо ребята) помогли)

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

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

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


 


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


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