其组件提供了访问url路径,并且能够从url当中返回数据,最常见的xml格式。使用步骤如下:
1.创建一个service组件。
2.调用对象方法send()。
3.使用返回数据。
创建一个service组件需要指定其url,并且指定result事件,当数据被成功返回的时候就会广播result事件。send方法应该在某个位置被触发。数据返回的时候被储存在一个叫做lastResult对象里面。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="myService.send();">
<mx:Script>
<![CDATA[
import mx.validators.ValidationResult;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function myServiceHandler(event:ResultEvent):void{
trace(event.result.allUnits.unit[0].unitName);
}
]]>
</mx:Script>
<mx:HTTPService id="myService" url="http://www.flexgrocer.com/units.xml" result="myServiceHandler(event)"/>
</mx:Application>
返回的数据被封装在一个ArrayCollection里面,当需要把数据给取出来充当数据源的时候,应该使用ArrayCollection而不应该使用Array,这点要注意:Array中的数据更改的时候组件不会更新。
下面定义一个数组变量,将数据取出并且显示出来。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="myService.send();">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
[Bindable]
private var unitArrayCollection:ArrayCollection=new ArrayCollection();
private function myServiceHandler(event:ResultEvent):void{
trace(event.result.allUnits.unit[0].unitName);
unitArrayCollection=event.result.allUnits.unit;
}
]]>
</mx:Script>
<mx:TileList id="myTileList" labelField="unitName" dataProvider="{unitArrayCollection}"/>
<mx:HTTPService id="myService" url="http://www.flexgrocer.com/units.xml" result="myServiceHandler(event)"/>
<mx:ComboBox x="333" y="121" id="myComboBox" dataProvider="{this.unitArrayCollection}" labelField="unitName"></mx:ComboBox>
</mx:Application>