-
//importamos las clases necesarias
-
import com.yahoo.webapis.weather.WeatherService;
-
import com.yahoo.webapis.weather.Weather;
-
import com.yahoo.webapis.weather.events.WeatherErrorEvent;
-
import com.yahoo.webapis.weather.events.WeatherResultEvent;
-
import fl.data.DataProvider;
-
//cramos el servicio
-
var ws:WeatherService = new WeatherService();
-
//escuchador cuando recivimos los datos
-
ws.addEventListener(WeatherResultEvent.WEATHER_LOADED, resultTiempo);
-
//si hay un error al recibir los datos
-
function xmlError(event:WeatherErrorEvent):void {
-
//weather_txt.text = event.data.toString();
-
}
-
//error al leer el xml
-
ws.addEventListener(WeatherErrorEvent.XML_LOADING, xmlError);
-
//
-
//ACTION PARA ESTE EJEMPLO
-
//
-
var periodo:String;
-
var codigoEstado:int;
-
var miLoader:Loader = new Loader();
-
var miReq:URLRequest=new URLRequest();
-
var mes:Array;
-
var dia:Array;
-
var contImgGde:Sprite = new Sprite();
-
//estados del tiempo en español
-
var xmlData:XML;
-
var xmlLoader:URLLoader = new URLLoader();
-
var urlRequest:URLRequest = new URLRequest("clima-es.xml");
-
xmlLoader.load(urlRequest);
-
xmlLoader.addEventListener(Event.COMPLETE, this.iniciarXML);
-
var xmlList:XMLList = new XMLList();
-
function iniciarXML(e:Event):void {
-
xmlData = new XML(xmlLoader.data);
-
xmlList = XMLList(xmlData.clima);
-
init();
-
}
-
//datos para el combo
-
var ciudades:Array = new Array({label:"Córdoba",data:"ARCA0023"},{label:"Buenos Aires",data:"ARBA0009"},{label:"Rio Cuarto",data:"ARCA0073"},{label:"Villa Carlos Paz",data:"ARCA0108"},{label:"Ushuaia",data:"ARTF0105"});
-
var dp:DataProvider = new DataProvider(ciudades);
-
cb.dataProvider=dp;
-
cb.addEventListener(Event.CHANGE, cbSelect);
-
function cbSelect(o:Event):void {
-
ws.getWeather(cb.selectedItem.data, "metric");
-
}
-
-
function init() {
-
mes = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
-
dia = new Array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
-
time_txt.autoSize = TextFieldAutoSize.LEFT ;
-
contImgGde.y = time_txt.y+15;
-
-
var defaud:Object = new Object();
-
defaud = cb.getItemAt(0);
-
-
ws.getWeather(defaud.data, "metric");
-
formatFecha();
-
}
-
-
function formatFecha() {
-
var date:Date = new Date();
-
var minutos:String;
-
if (date.getMinutes()<10) {
-
minutos = "0"+String(date.getMinutes());
-
} else {
-
minutos = String(date.getMinutes());
-
}
-
if (date.getHours()<12) {
-
periodo ="am";
-
} else {
-
periodo ="pm";
-
}
-
time_txt.text = dia[date.day]+" "+String(date.getDate() +" de "+mes[date.getMonth()]+" - "+date.getHours()+":"+minutos+" "+periodo);
-
-
var contDay:int = date.day;
-
switch (date.day) {
-
case 5 :
-
estado1_txt.text = dia[6];
-
estado2_txt.text = dia[0];
-
break;
-
case 6 :
-
estado1_txt.text = dia[0];
-
estado2_txt.text = dia[1];
-
break;
-
default :
-
estado1_txt.text = dia[date.day+1];
-
estado2_txt.text = dia[date.day+2];
-
}
-
}
-
-
function resultTiempo(event:WeatherResultEvent):void {
-
codigoEstado = event.data.current.code;
-
if (codigoEstado==0) {
-
codigoEstado = 3200;
-
temperatura_txt.text = "";
-
estado_txt.text = "";
-
dtosEx_txt.text ="";
-
} else {
-
temperatura_txt.text = event.data.current.temperature+"º";
-
estado_txt.text = xmlList.@value[codigoEstado];
-
dtosEx_txt.text = "Viento: "+event.data.current.wind.direction+" "+event.data.current.wind.speed+" "+event.data.units.speed+"n"+"Humedad: "+event.data.current.atmosphere.humidity+"%"+"n"+"Visibilidad: "+event.data.current.atmosphere.visibility+" "+event.data.units.distance+"n"+"Presión atmosférica: "+event.data.current.atmosphere.pressure+" "+event.data.units.pressure;
-
esttemp1_txt.text = event.data.forecast[0].high+"º "+ event.data.forecast[0].low+"º";
-
esttemp2_txt.text = event.data.forecast[1].high+"º "+ event.data.forecast[1].low+"º";
-
}
-
var urlImagen:String = "imgactual/"+codigoEstado+".png";
-
miReq = new URLRequest(urlImagen);
-
miLoader.load(miReq);
-
contImgGde.addChild(miLoader);
-
this.addChild(contImgGde);
-
formatFecha();
-
}