【教程】【FLEX】#002 请求服务端数据(UrlLoader)

时间:2022-04-17 17:20:32

为什么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 = "";

//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;

}