为什么Flex需要请求服务端读取数据,而不是自己读取?
Flex 是一门界面语言,主要是做界面展示的,它能实现很多绚丽的效果,这个是传统Web项目部能比的。 但是它对数据库和文件的读写 没有良好的支持。
既然Flex没有对数据库和读写文件有良好的支持,那么读数据数据,和读写文件,可以用C#或者Java来编写,然后Flex请求 用C#或者Java写好的接口。
Flex请求服务端接口的方法有很多种,这边我就讲解如何使用UrlLoader来请求接口。
请求服务端接口的步骤:
1、创建UrlRequest对象,设置请求的URL,Method的类型(POST,GET),以及请求传递的参数
2、创建UrlLoader对象去请求接口。 (记得把UrlRequest传入UrlLoader的Load方法里)
3、对返回的数据进行处理
代码例子(代码片段):
//请求服务端的方法(UrlLoader) protected function mytree_creationCompleteHandler(event:FlexEvent):void { //1、创建UrlRequest对象,设置请求的URL和Method类型(Get,Post)、请求的参数(data) var urlRequest:URLRequest=new URLRequest(); urlRequest.url="http://192.168.116.64:9986/Manage/ComponentManage/AjaxHandler/F_ElementToXML.ashx?type=getElement"; urlRequest.method = URLRequestMethod.POST; var param:URLVariables = new URLVariables(); param.name = "zhongxia"; param.age = "20"; //2、创建UrlLoader,并把urlRequest对象赋值给UrlLoader的Load方法,并且注册事件 var ul:URLLoader=new URLLoader(); ul.load(urlRequest); ul.addEventListener(Event.COMPLETE,handler); } //UrlLoader请求完成的处理 private function handler(e:Event):void { //3、把数据读出来(数据保存在事件对象e里面),做想要执行的操作 var jsonString:String=e.target.data as String; //下面是对数据的操作 var json:Object = com.adobe.serialization.json.JSON.decode(jsonString); var arr:ArrayCollection=new ArrayCollection(json as Array) mytree.dataProvider=arr; }