之前的一些操作,我都把httpservice写成如下形式,就是在<fx:Declaration></fx:Declaration>里面声明,这是一种静态的方式,这种方式的局限性在于不能动态改变,也就是说一些URL如果要动态改变,比如从属性配置文件中读取的话,就会出现一些问题,它的申明如下:
<fx:Declarations》
<mx:HTTPService id="weatherService" url="{Properties.UrlWeather}" result="jasononResultWeather(event)" resultFormat="e4x">
</mx:HTTPService>
<mx:HTTPService id="jasons_trs_f" url="{Properties.IP_checkLog}" result="jasononResult_trs_f(event)" resultFormat="e4x">
</mx:HTTPService>
</fx:Declarations>
下面我介绍一种动态生成httpService 的方法,如下所示:
getAllCalenderService=new HTTPService();
getAllCalenderService.url="http://192.168.17.66:8080/Smarter/calendarSetting!getMonthSettings.action?year=2011&month=11"
getAllCalenderService.method="post";
getAllCalenderService.send();
getAllCalenderService.addEventListener(ResultEvent.RESULT,getAllCalenderFunc);
而getAllCalenderFunc为这个响应函数,即首先往后台传输数据,然后呢,服务器后台回应给客户端,说明是操作成功还是失败,
传输一些数据或者状态码回来。
如下所示:
public function getAllCalenderFunc(event:ResultEvent):void{
var jsonData:String = new String(event.result);
allCalenders = (JSON.decode(jsonData) as Array);
Alert.show(allCalenders.length.toString());
ArrCalenderArrColl = new ArrayCollection(allCalenders);
Alert.show(ArrCalenderArrColl.getItemAt(0).date);
}
过程解释,待续..............................................