程序加载初始化调用Web服务的应用
正常情况下集合中放置对象但是放置一般的数据类型时需要要注意的:
如下:
在一个字符串的集合中如果没有列的名称则列名称为集合名称如:
<mx:DataGrid dataProvider="{dataList}" x="24.5" y="107" width="351">
<mx:columns>
<mx:DataGridColumn dataField="dataList" headerText="aa"/>
</mx:columns>
</mx:DataGrid>
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" initialize="initApp()" >
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.soap.LoadEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
private var dataList:ArrayCollection;
[Bindable]
private var tmp:String;
//初始化函数可以再creationComplete或initialized兑web服务的操纵进行初始化调用
private function initApp():void
{
//初始化回调callService(相等于mx:WebService组件中load属性)
weatherWs.addEventListener(LoadEvent.LOAD,callService);
}
//回调函数
private function callService(event:LoadEvent):void
{
//调用相应的函数
weatherWs.getList();
}
//事件绑定处理方法
private function resultHandler(event:ResultEvent):void
{
//强制转换为字符串
tmp=event.result as String;
}
private function resultHandlerList(event:ResultEvent):void
{
//强制转换为集合
dataList=event.result as ArrayCollection;
}
//错误处理方法
private function faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.faultDetail);
}
]]>
</mx:Script>
<mx:WebService id="weatherWs" wsdl="http://localhost:8090/FlexWS/services/FlexWebService?wsdl" >
<mx:operation name="helloWord" result="resultHandler(event)" fault="faultHandler(event)">
<mx:request>
<in0>
xiaoxiao
</in0>
<in1>
ZH
</in1>
</mx:request>
</mx:operation>
<mx:operation name="getList" result="resultHandlerList(event)" fault="faultHandler(event)"/>
</mx:WebService>
<mx:Button label="查看信息" click="weatherWs.helloWord()" x="101" y="10"/>
<!--表达式-->
<mx:Label text="{weatherWs.helloWord.lastResult}" y="12" x="260"/>
<mx:DataGrid dataProvider="{dataList}" x="24.5" y="107" width="351">
<mx:columns>
<mx:DataGridColumn dataField="dataList" headerText="aa"/>
</mx:columns>
</mx:DataGrid>
</mx:Canvas>