Показать сообщение отдельно
Старый 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.