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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.12.2008, 12:20
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 11  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Ну, давайте попробуем.

Писал на коленке, не тестил даже. Но суть должна быть понятна =)

Это только для затравки.

Код AS1/AS2:
////////////////////////////////////////////////////////////////////////////////
//
//  
//
////////////////////////////////////////////////////////////////////////////////
 
/**
 *	@author				Dimarik
 *	@version			1.0
 *	@playerversion		Flash 6
 *	@langversion		1.0
 *
 *  Wheather tracker
 */
 
 
//---------------------
// Constants
//---------------------
 
// Tags
var TAG_TOWN:			String = 'TOWN';
var TAG_FORECAST:		String = 'FORECAST';
var TAG_PHENOMENA:		String = 'PHENOMENA';
var TAG_PRESSURE:		String = 'PRESSURE';
var TAG_TEMPERATURE:	String = 'TEMPERATURE';
var TAG_WIND:			String = 'WIND';
var TAG_RELWET:			String = 'RELWET';
var TAG_HEAT:			String = 'HEAT';
 
// Attributes
var ATTR_TOWN_NAME:		String = 'sname';
 
var ATTR_DAY:			String = 'day';
var ATTR_MONTH:			String = 'month';
var ATTR_YEAR:			String = 'year';
var ATTR_HOUR:			String = 'hour';
 
var ATTR_CLOUDINESS:	String = 'cloudiness';
 
 
//---------------------
//  Variables
//---------------------
var weatherData:		Object = new Object();
 
var town:			String = '';
 
var _iterator:		Number;
 
// Создать на сцене клип с кадрами-иконками облачности
var cloudnessMC:	MovieClip;
 
 
function parseXML(value:XMLNode):void {
 
	var node:	XMLNode;
	var attr:	Object;
 
	while (node = doc.firstChild) {
		attr = node.attributes;
 
		switch ( node.nodeName.toUpperCase() ) {
			case TAG_TOWN:
				this.town = attr[ATTR_TOWN_NAME];
				break;
 
			case TAG_FORECAST:
				var hour:		Number = parseInt(attr[ATTR_HOUR]);
				var day:		Number = parseInt(attr[ATTR_DAY]);
				var month:		Number = parseInt(attr[ATTR_MONTH]);
				var year:		Number = parseInt(attr[ATTR_YEAR]);
				var timeStamp:	Date  = new Date(year, month - 1, day, hour);
				this._iterator = timeStamp.getTime();
				this.weatherData[this._iterator] = new Object();
				// TODO: tod, predict, weekday
				break;
 
			case TAG_PHENOMENA:
				this.weatherData[this._iterator].PHENOMENA = new Object();
				this.weatherData[this._iterator].PHENOMENA.cloudiness = attr[ATTR_CLOUDINESS];
				// or
				this.cloudnessMC.gotoAndStop( parseInt(attr[ATTR_CLOUDINESS]) || 'no_cloudiness_status');
				break;
 
			// TODO, TODO, TODO
		}
 
		this.parseXML(node);
		node.removeNode();
	}
}
 
function requestForecast():Void {
	xmlin:XML = new XML();
	xmlin.ignoreWhite = true;
 
	var app:Object = this;
 
	xmlin.onLoad = function(success:Boolean):Void {
		if (success) {
			var doc:XMLNode = this.firstChild.firstChild.firstChild;
			app.parseXML(doc);
		} else {
			trace('Error: ');
		}
	};
 
	xmlin.load("27612_1.xml");
}
 
this.requestForecast();
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 23.12.2008, 13:53
DrSmyrke вне форума Посмотреть профиль Отправить личное сообщение для DrSmyrke Найти все сообщения от DrSmyrke
  № 12  
Ответить с цитированием
DrSmyrke
 
Аватар для DrSmyrke

Регистрация: Jun 2008
Сообщений: 28
Цитата:
Сообщение от zurkis Посмотреть сообщение
да не против помочь разобраться, но ты бы сначала разобрался для начала со своим xml и пояснил что и за что отвечает? и тогда давай вместе решать твои вопросы
этот XML содержит данные о погоде в моем городе, вот как он расшифровывается:

Описание формата:
TOWN информация о пункте прогнозирования:
index уникальный пятизначный код города
sname закодированное название города
latitude широта в целых градусах
longitude долгота в целых градусах
FORECAST информация о сроке прогнозирования:
day, month, year дата, на которую составлен прогноз в данном блоке
hour местное время, на которое составлен прогноз
tod время суток, для которого составлен прогноз: 0 - ночь 1 - утро, 2 - день, 3 - вечер
weekday день недели, 1 - воскресенье, 2 - понедельник, и т.д.
predict заблаговременность прогноза в часах
PHENOMENA атмосферные явления:
cloudiness облачность по градациям: 0 - ясно, 1- малооблачно, 2 - облачно, 3 - пасмурно
precipitation тип осадков: 4 - дождь, 5 - ливень, 6,7 – снег, 8 - гроза, 9 - нет данных, 10 - без осадков
rpower интенсивность осадков, если они есть. 0 - возможен дождь/снег, 1 - дождь/снег
spower вероятность грозы, если прогнозируется: 0 - возможна гроза, 1 - гроза
PRESSURE атмосферное давление, в мм.рт.ст.
TEMPERATURE температура воздуха, в градусах Цельсия
WIND приземный ветер
min, max минимальное и максимальное значения средней скорости ветра, без порывов
direction направление ветра в румбах, 0 - северный, 1 - северо-восточный, и т.д.
RELWET относительная влажность воздуха, в %
HEAT комфорт - температура воздуха по ощущению одетого по сезону человека, выходящего на улицу

вот надо сделать что бы во флеш все грузилось, а в учебниках описаны примеры анализа XML с одной или двумя переменными, а как анализировать вот такие сложные XML ни где не нашел, да и сам пытался допетрить, но ни как не получается!!!

Добавлено через 1 минуту
этот XML содержит данные о погоде в моем городе, вот как он расшифровывается:

Описание формата:
TOWN информация о пункте прогнозирования:
index уникальный пятизначный код города
sname закодированное название города
latitude широта в целых градусах
longitude долгота в целых градусах
FORECAST информация о сроке прогнозирования:
day, month, year дата, на которую составлен прогноз в данном блоке
hour местное время, на которое составлен прогноз
tod время суток, для которого составлен прогноз: 0 - ночь 1 - утро, 2 - день, 3 - вечер
weekday день недели, 1 - воскресенье, 2 - понедельник, и т.д.
predict заблаговременность прогноза в часах
PHENOMENA атмосферные явления:
cloudiness облачность по градациям: 0 - ясно, 1- малооблачно, 2 - облачно, 3 - пасмурно
precipitation тип осадков: 4 - дождь, 5 - ливень, 6,7 – снег, 8 - гроза, 9 - нет данных, 10 - без осадков
rpower интенсивность осадков, если они есть. 0 - возможен дождь/снег, 1 - дождь/снег
spower вероятность грозы, если прогнозируется: 0 - возможна гроза, 1 - гроза
PRESSURE атмосферное давление, в мм.рт.ст.
TEMPERATURE температура воздуха, в градусах Цельсия
WIND приземный ветер
min, max минимальное и максимальное значения средней скорости ветра, без порывов
direction направление ветра в румбах, 0 - северный, 1 - северо-восточный, и т.д.
RELWET относительная влажность воздуха, в %
HEAT комфорт - температура воздуха по ощущению одетого по сезону человека, выходящего на улицу

вот надо сделать что бы во флеш все грузилось, а в учебниках описаны примеры анализа XML с одной или двумя переменными, а как анализировать вот такие сложные XML ни где не нашел, да и сам пытался допетрить, но ни как не получается!!!

Добавлено через 1 час 58 минут
Цитата:
Сообщение от dimarik Посмотреть сообщение
Ну, давайте попробуем.

Писал на коленке, не тестил даже. Но суть должна быть понятна =)

Это только для затравки.

Код AS1/AS2:
////////////////////////////////////////////////////////////////////////////////
//
//  
//
////////////////////////////////////////////////////////////////////////////////
 
/**
 *	@author				Dimarik
 *	@version			1.0
 *	@playerversion		Flash 6
 *	@langversion		1.0
 *
 *  Wheather tracker
 */
 
 
//---------------------
// Constants
//---------------------
 
// Tags
var TAG_TOWN:			String = 'TOWN';
var TAG_FORECAST:		String = 'FORECAST';
var TAG_PHENOMENA:		String = 'PHENOMENA';
var TAG_PRESSURE:		String = 'PRESSURE';
var TAG_TEMPERATURE:	String = 'TEMPERATURE';
var TAG_WIND:			String = 'WIND';
var TAG_RELWET:			String = 'RELWET';
var TAG_HEAT:			String = 'HEAT';
 
// Attributes
var ATTR_TOWN_NAME:		String = 'sname';
 
var ATTR_DAY:			String = 'day';
var ATTR_MONTH:			String = 'month';
var ATTR_YEAR:			String = 'year';
var ATTR_HOUR:			String = 'hour';
 
var ATTR_CLOUDINESS:	String = 'cloudiness';
 
 
//---------------------
//  Variables
//---------------------
var weatherData:		Object = new Object();
 
var town:			String = '';
 
var _iterator:		Number;
 
// Создать на сцене клип с кадрами-иконками облачности
var cloudnessMC:	MovieClip;
 
 
function parseXML(value:XMLNode):void {
 
	var node:	XMLNode;
	var attr:	Object;
 
	while (node = doc.firstChild) {
		attr = node.attributes;
 
		switch ( node.nodeName.toUpperCase() ) {
			case TAG_TOWN:
				this.town = attr[ATTR_TOWN_NAME];
				break;
 
			case TAG_FORECAST:
				var hour:		Number = parseInt(attr[ATTR_HOUR]);
				var day:		Number = parseInt(attr[ATTR_DAY]);
				var month:		Number = parseInt(attr[ATTR_MONTH]);
				var year:		Number = parseInt(attr[ATTR_YEAR]);
				var timeStamp:	Date  = new Date(year, month - 1, day, hour);
				this._iterator = timeStamp.getTime();
				this.weatherData[this._iterator] = new Object();
				// TODO: tod, predict, weekday
				break;
 
			case TAG_PHENOMENA:
				this.weatherData[this._iterator].PHENOMENA = new Object();
				this.weatherData[this._iterator].PHENOMENA.cloudiness = attr[ATTR_CLOUDINESS];
				// or
				this.cloudnessMC.gotoAndStop( parseInt(attr[ATTR_CLOUDINESS]) || 'no_cloudiness_status');
				break;
 
			// TODO, TODO, TODO
		}
 
		this.parseXML(node);
		node.removeNode();
	}
}
 
function requestForecast():Void {
	xmlin:XML = new XML();
	xmlin.ignoreWhite = true;
 
	var app:Object = this;
 
	xmlin.onLoad = function(success:Boolean):Void {
		if (success) {
			var doc:XMLNode = this.firstChild.firstChild.firstChild;
			app.parseXML(doc);
		} else {
			trace('Error: ');
		}
	};
 
	xmlin.load("27612_1.xml");
}
 
this.requestForecast();
спасибо конечно большое, но почемуто не фурычит она, выдает
параметр "null" и все тут!

Старый 25.12.2008, 00:42
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 13  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Продолжать будем? Нашел одну ошибку
Код AS1/AS2:
while (node = doc.firstChild) {
заменить, естессно, на
Код AS1/AS2:
while (node = value.firstChild) {
если интересно, можно нормальный трекер потихонечку собрать =)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 06.01.2009, 05:40
RAlfDog вне форума Посмотреть профиль Отправить личное сообщение для RAlfDog Найти все сообщения от RAlfDog
  № 14  
Ответить с цитированием
RAlfDog
 
Аватар для RAlfDog

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
Цитата:
Сообщение от DrSmyrke Посмотреть сообщение
вот еще один вопросик по теме, стырил я XML с гисметео, вот токо не могу разобраться в нем.
пробовал по разному но все равно ничего не пишет в текстовое поле, что делать? памагите, плиз! Заранее СПС
Вот вам XML-парсер (делал в одном своём проекте), разбирает XML и создает на его основе объект с данными свойствами и значениями:
Код AS1/AS2:
// Variables
var XMLdata:XML;
var weatherObj:Object = new Object();
 
// Functions
function parseNodes(elem:XMLNode, hodeline:Object):Void {
        if (elem.nodeType == 1) {
            hodeline[elem.nodeName] = {};
            hodeline[elem.nodeName]['attributes'] = {};
            parseNodeAttributes(elem,hodeline[elem.nodeName]['attributes']);
        }
        if (elem.nodeType == 3) {
            parseNodeText(elem,hodeline);
        }
        if (elem.hasChildNodes) {
            parseNodes(elem.firstChild,hodeline[elem.nodeName]);
        }
        if (elem.nextSibling != null) {
            parseNodes(elem.nextSibling,hodeline);
        }
}
 
function parseNodeAttributes(elem:XMLNode, objectline:Object):Void {
        var n:Number;
        for (n in elem.attributes) {
            objectline[n] = elem.attributes[n];
        }
}
 
function parseNodeText(elem, objectParent:Object):Void {
        _root.createTextField("my_txt",1,100,100,300,100);
        _root.my_txt._visible = false;
        _root.my_txt.html = true;
        _root.my_txt.condenseWhite = true;
        _root.my_txt.htmlText = elem.nodeValue;
        if (_root.my_txt.htmlText.length <= 0) {
            elem.nodeValue = _root.my_txt.htmlText;
        }
        _root.my_txt.removeTextField();
        if (elem.nodeValue.length > 0) {
            objectParent['text'] = elem.nodeValue;
        }
}
 
// Execute
XMLdata = new XML(imported_xml_text); //imported_xml_text - любой текст в формате xml
XMLdata.ignoreWhite = true; //если не нужно, можно убрать эту строку
parseNodes(XMLdata.lastChild,weatherObj);
и после этого вам остается только обратиться к нужному свойству объекта weatherObj :
Код AS1/AS2:
var temp:Number = Number(weatherObj.MMWEATHER.REPORT.TOWN.FORECAST.TEMPERATURE.atributtes.max);
Когда парсер разбирает XML, он атрибуты тега пишет в свойство atributtes, а текст тега сохраняет в свойстве text. Т.е. чтобы добраться до направления ветра, нужно вот сюда обращаться WIND.atributtes.direction


Последний раз редактировалось RAlfDog; 06.01.2009 в 05:50.
Старый 06.01.2009, 10:36
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 15  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
Сообщение от dimarik Посмотреть сообщение
Продолжать будем?
если интересно, можно нормальный трекер потихонечку собрать =)
dimarik, браво, браво!!!
Очень интересно!))

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
А не пробывал получить готовый свф из их сайта, от декомпилировать и изменить графику на нужную тебе, только не забудь указать откуда данные, тогда на изменение они будут не против.
__________________
return this...

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

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

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


 


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


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