<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http:
layout="vertical"
backgroundAlpha="0" backgroundColor="#FFFFFF">
<mx:HTTPService
id="weatherService"
url="http:
resultFormat="e4x"
result="resultHandler(event);"/>
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private namespace yweather = "http:;
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>
AS Syntax Qs:
1. Wouldn't it be more expressive to use smth. like import namespace (url) instead of declaration and "use namespace", provided the new syntax will be in place in the future? I mean everything in one sentence...
2. Is "XML( event.result );" short for "(new XML()).loadXml(event.result);"? Have you got other examples of RAD type conversions? Think about $() in JS prototype...
3. mx:Form <> Html Form. Form params (fields) are not sent automatically which is great on one side. But if I have 100 fields on the form and really need to send all fields over the wire, I guess you have a serialization technique out-of-the-box?