box-o-sand/PracticingFlex/03a1-binding-and-modeling/YahooWeather.mxml

52 lines
1.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
backgroundAlpha="0" backgroundColor="#FFFFFF">
<mx:HTTPService
id="weatherService"
url="http://weather.yahooapis.com/forecastrss"
resultFormat="e4x"
result="resultHandler(event);"/>
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private namespace yweather = "http://xml.weather.yahoo.com/ns/rss/1.0";
use namespace yweather;
[Bindable]
private var myResult:XML;
public function requestWeather():void {
weatherService.cancel();
var params:Object = new Object();
params.p = zip.text;
weatherService.send(params);
}
public function resultHandler(event:ResultEvent):void {
myResult = XML( event.result );
}
]]>
</mx:Script>
<mx:Form width="400">
<mx:FormItem label="Zip Code">
<mx:TextInput id="zip" />
<mx:Button label="Get Weather" click="requestWeather();"/>
</mx:FormItem>
<mx:FormItem label="City">
<mx:Text text="{myResult.channel.yweather::location.@city}"/>
</mx:FormItem>
<mx:FormItem label="Temperature">
<mx:Text text="{myResult.channel.item.yweather::condition.@temp}"/>
</mx:FormItem>
<mx:FormItem label="Condition">
<mx:Text text="{myResult.channel.item.yweather::condition.@text}" width="100%"/>
</mx:FormItem>
</mx:Form>
<mx:TextArea id="resultFld" text="{myResult}" width="400" height="152"/>
</mx:Application>