RemoteObject发送和接收数据时,flex的flex string to int字符串内存泄露

从服务器端获得数据并用Flex展示
从服务器端获得数据并用Flex展示
如何从服务器端获得数据并通过Flex以图表形式展现出来,主要思路是:用户通过浏览器调用嵌入Flex应用的html页面-&Flex应用发送请求到服务端请求数据-&服务端将数据返回给Flex应用-&Flex向用户展示数据。 下面分别从服务端和Flex进行说明:
1.编写服务端
&&& && 服务端用来向Flex应用返回请求的数据。这里的数据格式设置为XML数据。对于XML数据,可以直接返回一个XML文件或者通过编码返回XML格式的数据。这里我们采用后者,这里的服务端还接收一个参数:type,根据type不同返回不同的XML数据。
package&&&
import&java.io.*;&&
import&javax.servlet.*;&&
import&javax.servlet.http.*;&&
public&class&DataServiceServlet&extends&HttpServlet&{&&
&&&&protected&void&processRequest(HttpServletRequest&request,&HttpServletResponse&response)&&
&&&&throws&ServletException,&IOException&{&&
&&&&&&&&response.setContentType("text/charset=UTF-8");&&
&&&&&&&&PrintWriter&out&=&response.getWriter();&&
&&&&&&&&try&{&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&String&type&=&request.getParameter("type");&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&StringBuilder&xml&=&new&StringBuilder();&&
&&&&&&&&&&&&xml.append("&?xml&version='1.0'&encoding='UTF-8'?&");&&
&&&&&&&&&&&&if&("1".equals(type))&{&&
&&&&&&&&&&&&&&&&xml.append("&root&");&&
&&&&&&&&&&&&&&&&xml.append("&Expense&name='Taxses'&value='3000'/&");&&
&&&&&&&&&&&&xml.append("&Expense&name='Rent'&value='1520'/&");&&
&&&&&&&&&&&&&&&&xml.append("&Expense&name='Bills'&value='500'/&");&&&&&&&&&&
&&&&&&&&&&&&&&&&xml.append("&/root&");&&
&&&&&&&&&&&&}&else&if&("2".equals(type))&{&&
&&&&&&&&&&&&&&&&xml.append("&root&");&&
&&&&&&&&&&&&&&&&xml.append("&Expense&name='Taxses'&value='5000'/&");&&
&&&&&&&&&&&&xml.append("&Expense&name='Rent'&value='1020'/&");&&
&&&&&&&&&&&&&&&&xml.append("&Expense&name='Bills'&value='210'/&");&&&&&&&&&&
&&&&&&&&&&&&&&&&xml.append("&/root&");&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&out.println(xml.toString());&&
&&&&&&&&}&finally&{&&&
&&&&&&&&&&&&out.close();&&
&&&&&&&&}&&
&&&&protected&void&doGet(HttpServletRequest&request,&HttpServletResponse&response)&&
&&&&throws&ServletException,&IOException&{&&
&&&&&&&&processRequest(request,&response);&&
&&&&protected&void&doPost(HttpServletRequest&request,&HttpServletResponse&response)&&
&&&&throws&ServletException,&IOException&{&&
&&&&&&&&processRequest(request,&response);&&
&&&&public&String&getServletInfo()&{&&
&&&&&&&&return&"Short&description";&&
&服务端很简单,就是返回请求数据。
2.编写Flex应用
&&& && 这个例子总Flex需要向服务端发送请求的同时,传递一个参数。用Flex发送带参数请求很简单,但是如何向Flex应用传递参数,却有些繁琐。下面先来看Flex应用如何获得外部传来的参数:
&version="1.0"&&
&xmlns:mx="/2006/mxml"&&&
&&&&initialize="getParams();"&&&&//&style="BACKGROUND-COLOR:&#ffff66;&COLOR:&black"Flex应用初始化时,向服务端获取数据&&
&&&![CDATA[&
&&&&&import&mx.collections.ArrayC&
&&&&&import&mx.rpc.http.HTTPS&
&&&&&import&mx.controls.A&
&&&&&[Bindable]&
&&&&&private&var&service:HTTPService&;&
&&&&&private&function&get_Label(item:Object,&field:String,&index:Number,&percentValue:Number):String&
&&&&&&&&&return&item["name"].toString()+":"+item[field].toString();&
&&&&&//获得参数&
&&&&&private&function&getParams():void&{&
&&&&&&&&&//获得参数&
&&&&&&&&&var&params:Object&=&this.&
&&&&&&&&&if&(params&!=&null)&{&
&&&&&&&&&&&&&&&&//向服务端请求数据&
&&&&&&&&&&&&&&&&service&=&DataLoader.getData(params["type"].toString());&
&&&&&&&&&}&else&{&
&&&&&&&&&&&&&&&&Alert.show("No&params");&
&&&&&&&&&}&
&&&&&&&&&&&&&
&&&title="Pie&Chart"&backgroundColor="#FFFFFF"&&
&&&&//展示饼状图&&
&&&&&&id="myChart"&&&
&&&&&&&&dataProvider="{service.lastResult.root.Expense}"&&&&//获得服务端返回的数据&&
&&&&&&&&showDataTips="true"&&
&&&&&&&&&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&field="value"&&&
&&&&&&&&&&&&&&&&nameField="name"&&&
&&&&&&&&&&&&&&&&labelPosition="callout"&&
&&&&&&&&&&&&&&&&labelFunction="get_Label"&&
&&&&&&&&&&&&&
&&&&&&&&&&
&&&&&&dataProvider="{myChart}"&&
&从上面的代码可以看出,Flex获得参数的方法:
&&&&&private&function&getParams():void&{&&
&&&&&&&&&&&
&&&&&&&&&&SPAN&style="COLOR:&#ff0000"&var&params:Object&=&this.&/SPAN&&&
&&&&&&&&&if&(params&!=&null)&{&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&service&=&DataLoader.getData(&SPAN&style="COLOR:&#ff0000"&params["type"].toString()&/SPAN&&&
&&&&&&&&&}&else&{&&
&&&&&&&&&&&&&&&&Alert.show("No&params");&&
&&&&&&&&&}&&
&&&&&&&&&&&&&&
&在应用加载的时候,通过调用getParams()方法,获得传入的参数,并向服务端请求数据。
&Flex向服务端请求数据有3种方式:REST-sytle service,web service,Remote object service。这里使用的是第一种方式。REST-style service实际上就是采用HTTP协议通信的方式。Flex提供了HTTPService component,使用起来很方便。这里用的是ActionScript:
& DataLoader.as
&&&&import&mx.controls.A&&
&&&&import&mx.rpc.events.FaultE&&
&&&&import&mx.rpc.events.ResultE&&
&&&&import&mx.rpc.http.HTTPS&&
&&&&public&class&DataLoader&&
&&&&&&&&&&
&&&&&&&&public&function&DataLoader()&&
&&&&&&&&{&&
&&&&&&&&}&&
&&&&&&&&public&static&function&getData(type:Object):HTTPService&{&&
&&&&&&&&&&&&&&&&var&service:HTTPS&&
&&&&&&&&&&&&&&&&service&=&new&HTTPService();&&
&&&&&&&&&&&&&&&&service.url&=&"http://localhost:7001/DataService/getData?type="+&&
&&&&&&&&&&&&&&&&service.method&=&"POST";&&
&&&&&&&&&&&&&&&&service.addEventListener("result",&httpResult);&&
&&&&&&&&&&&&&&&&service.addEventListener("fault",&httpFault);&&
&&&&&&&&&&&&&&&&service.send();&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&return&&&
&&&&&&&&}&&
&&&&&&&&public&static&function&httpResult(event:ResultEvent):void&{&&
&&&&&&&&&&&&&&&&var&result:Object&=&event.&&
&&&&&&&&}&&
&&&&&&&&public&static&function&httpFault(event:FaultEvent):void&{&&
&&&&&&&&&&&&&&&&var&faultstring:String&=&event.fault.faultS&&
&&&&&&&&&&&&&&&&Alert.show("Fault:&"&+&faultstring);&&
&&&&&&&&}&&
&下面的代码得到服务端返回的数据:
&id="myChart"&&&
&&&&&&&&dataProvider="&style="COLOR:&#ff0000"{service.lastResult.root.Expense}&&
"&&&&//获得服务端返回的数据&&
&&&&&&&&showDataTips="true"&&
&&。。。&&
之后,Flex就可以根据获得的数据将图展现出来了。
上面说了Flex如何获得参数并向服务端发送请求,那么参数是如何传递给Flex应用的呢?这里就有点复杂了。需要写一段JS脚本进行参数的传递。
& & chartType.js
var&requiredMajorVersion&=&9;&&
var&requiredMinorVersion&=&0;&&
var&requiredRevision&=&0;&&
&!--&动态创建Flash&--&&&
&!--&id:应用编号&--&&&
&!--&url:嵌入网页的SWF文件名称&--&&&
&!--&width:应用在网页中的宽度&--&&&
&!--&high:应用在网页中的高度&--&&&
&!--&type:服务端需要的参数&--&&&
function&sendParameters(id,&url,&width,&high,&type)&&
&&&&var&hasProductInstall&=&DetectFlashVer(6,&0,&65);&&
&&&&var&hasRequestedVersion&=&DetectFlashVer(requiredMajorVersion,&requiredMinorVersion,&requiredRevision);&&
&&&&if(hasProductInstall&&&&!hasRequestedVersion)&&
&&&&&&&&var&MMPlayerType&=&(isIE&==&true)&?&"ActiveX"&:&"PlugIn";&&
&&&&&&&&var&MMredirectURL&=&window.&&
&&&&&&&&document.title&=&document.title.slice(0,&47)&+&"&-&Flash&Player&Installation";&&
&&&&&&&&var&MMdoctitle&=&document.&&
&&&&&&&&&SPAN&style="COLOR:&#ff0000"&AC_FL_RunContent&/SPAN&&&
&&&&&&&&&&&&"id",&id,&&
&&&&&&&&&&&&"src",&"playerProductInstall",&&
&&&&&&&&&&&&"name",&url,&&
&&&&&&&&&&&&"width",&width,&&
&&&&&&&&&&&&"height",&high,&&
&&&&&&&&&&&&"menu",&false,&&
&&&&&&&&&&&&"wmode",&"opaque",&&
&&&&&&&&&&&&"align",&"middle",&&
&&&&&&&&&&&&"quality",&"high",&&
&&&&&&&&&&&&"bgcolor",&"#808080",&&
&&&&&&&&&&&&"allowScriptAccess","always",&&
&&&&&&&&&&&&"FlashVars",&"MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",&&
&&&&&&&&&&&&"type",&"application/x-shockwave-flash",&&
&&&&&&&&&&&&"pluginspage",&"/go/getflashplayer");&&
&&&&else&if(hasRequestedVersion)&&
&&&&&&&&var&flashvars&=&"type="&+&&&
&&&&&&&&&&
&&&&&&&&&SPAN&style="COLOR:&#ff0000"&AC_FL_RunContent&/SPAN&&&
&&&&&&&&&&&&"id",&id,&&
&&&&&&&&&&&&"src",&url,&&
&&&&&&&&&&&&"name",&url,&&
&&&&&&&&&&&&"flashvars",&flashvars,&&
&&&&&&&&&&&&"menu",&false,&&
&&&&&&&&&&&&"width",&width,&&
&&&&&&&&&&&&"height",&high,&&
&&&&&&&&&&&&"wmode",&"opaque",&&
&&&&&&&&&&&&"align",&"middle",&&
&&&&&&&&&&&&"quality",&"high",&&
&&&&&&&&&&&&"bgcolor",&"#808080",&&
&&&&&&&&&&&&"allowScriptAccess","always",&&
&&&&&&&&&&&&"type",&"application/x-shockwave-flash",&&
&&&&&&&&&&&&"pluginspage",&"/go/getflashplayer");&&
&&&&else&&
&&&&&&&&var&alternateContent&=&'Alternate&HTML&content&should&be&placed&here.&'&&
&&&&&&&&&&&&+&'This&content&requires&the&Adobe&Flash&Player.&'&&
&&&&&&&&&&&&+&'&a&href=/go/getflash/&Get&Flash&/a&';&&
&&&&&&&&document.write(alternateContent);&&&&
function&getInfoForFlash(type)&&
&&&&if(type.toLowerCase().indexOf("f_code")&!=&-1)&&
&&&&&&&&var&target&=&document.getElementById("f_code");&&
&&&&&&&&if(target&!=&null)&&
&&&&&&&&&&&&return&target.&&
&&&&&&&&else&&
&&&&&&&&&&&&return&"g01";&&
&&&&else&if(type.toLowerCase().indexOf("f_title")&!=&-1)&&
&&&&&&&&var&target&=&document.getElementById("f_title");&&
&&&&&&&&if(target&!=&null)&&
&&&&&&&&&&&&return&target.&&
&&&&&&&&else&&
&&&&&&&&&&&&return&"unkown";&&
&&&&else&&
&&&&&&&&return&"unkown";&&
&上面的脚本中,调用了AC_FL_RunContent方法,这个方法是Flex提供给我们的一个方法,用FlexBuilder创建一个Flex Project后,就可以在html-template这个文件夹中看到一个叫AC_OETags.js的文件。这个方法就在这个文件中。下面是调用Flex应用的html页面:
&& chart.html
&lang="en"&&
&http-equiv="Content-Type"&content="text/&charset=utf-8"&&&
&src="AC_OETags.js"&language="javascript"&&
&bgcolor="#EBEAE5"&leftmargin="0"&topmargin="0"&&
&language="JavaScript"&type="text/javascript"&src="history.js"&&
&language="javascript"&type="text/javascript"&src="chartType.js"&&
&width="770"&border="0"&cellspacing="0"&cellpadding="0"&align="center"&&
&&&align="center"&&
&&&&&&&&sendParameters("Chart1",&"Chart1",&800,&600,&"2");&&
&这个HTML页面包含了AC_OETags.js和chartType.js。通过sendParameters方法向Flex应用传递参数,并将应用嵌入网页中显示出来。
发表评论:
TA的最新馆藏& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区RemoteObject实现flex与java交互_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
RemoteObject实现flex与java交互
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩13页未读,继续阅读
你可能喜欢2295人阅读
Flex(12)
& &由于Flex只是一种客户端技术其本身并不能直接同数据库交互,在实际的应用开发过程中Flex提供了如URLRequest、HTTPService、RemoteObject、WebService等类以实现同服务器的通讯和数据交互,下面做一些介绍和实例解析:
&& 1、使用URLRequest向服务器发送请求,使用URLLoader接收服务器返回的数据:
&&& URLRequest类可捕获单个 HTTP 请求中的所有信息,可以将 URLRequest 对象传递给 Loader、URLStream 和 URLLoader 类以及其他加载操作的 load() 方法以启动 URL 下载;默认情况下,传递给 url 参数的 URL 必须与执行调用的 SWF 文件在完全相同的域,包括子域。如果要从其它域中加载数据,请在承载数据的服务器上放置一个跨域策略文件。有关URLRequest详细可参看&
&& URLVariables类主要用来在应用程序和服务器之间传输参数变量;详细查看&
&& URLLoader 类以文本、XML、二进制数据或 URL 编码变量的形式从 URL 返回请求的数据详细请参看:
&&& 完成以下示例要引用到的Flex包:
&& 2、应用示例一:通过URLRequest和URLVariables向服务器发送参数请求并返回服务器文本数据(以下服务器端都采用asp.net编写)
&& 服务器端代码:
[c-sharp]&
&& FLEX中发送请求:
[c-sharp]&
&& Flex中接收返回数据
[c-sharp]&
&& 3、应用示例二:返回JSON格式数据:
&& 服务器端代码:
[c-sharp]&
&& FLEX中发送请求:
[c-sharp]&
&& Flex中接收返回数据
[c-sharp]&
& 4、应用示例三:返回XML格式数据:
& 服务器端代码:
[c-sharp]&
&& FLEX中发送请求:
[c-sharp]&
&& Flex中接收返回数据
[c-sharp]&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:190540次
积分:2097
积分:2097
排名:第12670名
原创:22篇
转载:101篇
评论:10条
(1)(1)(1)(2)(2)(2)(1)(2)(2)(3)(1)(5)(11)(13)(6)(1)(7)(18)(10)(6)(2)(4)(4)(6)(2)(1)(9)Flex数据交互之Remoting - MissEmily - 博客园
随笔 - 155
评论 - 117
  一  前言
  Flex数据交互常用的有三种方式:WebService、HttpService以及Remoting。
  WebService方式已在中给出,这篇文章主要讲解以Remoting方式进行数据交互,Remoting是基于AMF的数据交互,速度及性能均较WebService好,是公认最有效率的方法。
  二  FluorineFX
  FluorineFx是一个开源库,提供了一种在.NET Framework下对Flex/Flash的远程调用过程。FluorineFx官网地址,FluorineFx可以。 
  下载安装后,会在vs2008中自动增加两处模板:FluorineFx ServicesLibrary与FluorineFx ASP.NET Web Site。
  & & & & &
  接下来演示如何利用FluorineFx进行Flex与ASP.NET数据交互。
  三  ASP.NET服务器开发
  (1)新建FluorineFx ServicesLibrary类库,如下图:
  (2)在刚才建立的解决方案FlexRemotingDemo中,添加FluorineFx ASP.NET Web Site网站,如下图:
  该网站会自动引入FlexRemotingDemo.dll:
  在类库FlexRemotingDemo的Sample.cs文件中可以添加自己的函数:  
/// &summary&
/// 获得监测站信息(14个监测站)
/// &/summary&
/// &returns&&/returns&
public string getStationInfo()
string json = "";
DataTable dt = new DataTable();
dt = helper.GetStationInfo();
if (dt != null)
json = ConverTableToJSON(dt);
  将网站发布到IIS下:运行即可看到结果:
  (3)修改WEB-INF\flex下的services-config.xml配置文件:  
&channels&
&channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"&
&endpoint uri="http://localhost/FlexRemotingDemo/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/&
&properties&
    &!-- &legacy-collection&true&/legacy-collection& --&
&/properties&
&/channel-definition&
&channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel"&
&endpoint uri="rtmp://{server.name}:2037" class="flex.messaging.endpoints.RTMPEndpoint"/&
&properties&
&idle-timeout-minutes&20&/idle-timeout-minutes&
&/properties&
&/channel-definition&
&/channels& 
  四  Flex客户端开发
  (1)新建Flex项目:
  (2)配置Flex项目FlexRemotingDemo:
  (3)编写程序代码:
&?xml version="1.0" encoding="utf-8"?&
&s:Application xmlns:fx="/mxml/2009"
xmlns:s="library:///flex/spark"
xmlns:mx="library:///flex/mx" minWidth="955" minHeight="600"&
&fx:Declarations&
&mx:RemoteObject id="RO" destination="fluorine" source="ServiceLibraryDemo.Sample"&
&mx:method name="getStationInfo" result="onResult(event)"/&
&/mx:RemoteObject&
&/fx:Declarations&
&fx:Script&
import mx.events.FlexE
import mx.rpc.AbstractO
import mx.rpc.events.ResultE       protected function btn1_clickHandler(event:MouseEvent):void
RO.getStationInfo();
public function onResult(evt:ResultEvent):void{
txt1.text=evt.result.toString();
&/fx:Script&
&s:Button id="btn1" label="获得14个监测站信息" x="630" y="50" click="btn1_clickHandler(event)"/&
&s:TextArea id="txt1" x="20" y="40" width="600" /&
&/s:Application&
  运行结果如下:
  五  源码下载
  源码。
  日修改
  六  RemoteObject的封装   
  如上面,用起来相对比较麻烦,封装RemoteObject以方便使用,给出了相应的封装方法,我略作改动以适用本程序。
  (1)CYMRemoteObject.cs
package components
* @author chenyuming
import mx.controls.A
import mx.rpc.AbstractO
import mx.rpc.AsyncT
import mx.rpc.CallR
import mx.rpc.R
import mx.rpc.events.FaultE
import mx.rpc.events.ResultE
import mx.rpc.remoting.mxml.RemoteO
public class
CYMRemoteObject extends RemoteObject
public static const DEFAULT_DESTINATION:String = "fluorine";
public static const DEFAULT_SOURCE:String = "";
public function CYMRemoteObject(source:String,destination:String = DEFAULT_DESTINATION)
this.source =
super(destination);
public function call(methodName:String, callback:Function, ...args):void
var method:AbstractOperation = this.getOperation(methodName);
//为了方便起见,如果有多个参数的话就把参数包成一个Array,在J2EE端使用Object[]来获取参数
method.arguments =
var call:AsyncToken = method.send();
call.userDefinedCallback =
call.addResponder(new Responder(resultCallback, faultCallback));
public function resultCallback(event:ResultEvent):void
var callback:Function = event.token.userDefinedCallback as F
if (callback != null)
var result:CYMRemoteObjectResult = new CYMRemoteObjectResult();
result.error = false;
result.result = event.
callback(result);
public function faultCallback(event:FaultEvent):void
var callback:Function = event.token.userDefinedCallback as F
if (callback != null)
var result:CYMRemoteObjectResult = new CYMRemoteObjectResult();
result.error = true;
result.errorMessage = event.fault.toString();
callback(result);
  CYMRemoteObjectResult.cs
package components
* @author chenyuming
public class CYMRemoteObjectResult
public function CYMRemoteObjectResult()
public var error:Boolean = false;
public var errorMessage:String = null;
public var result:Object = null;
  (2)引用方式
protected function btn1_clickHandler(event:MouseEvent):void
var ro:CYMRemoteObject = new CYMRemoteObject("ServiceLibraryDemo.Sample", "fluorine");
ro.call("getStationInfo",onResult3);
//RO.getStationInfo();
public function onResult3(evt:CYMRemoteObjectResult):void
if(evt.error)
Alert.show(evt.errorMessage);
txt1.text=evt.result.toString();
  七  返回DataTable类型
  上面利用getStationInfo返回的是json类型,有时服务器端更喜欢直接返回DataTable类型以便于直接绑定Flex中形如DataGrid的容器,下面演示数据交互类型为DataTable:
  (1)服务器端:Sample.cs中增加函数getStationInfo2
/// &summary&
/// 获得监测站信息(14个监测站)
/// &/summary&
/// &returns&&/returns&
public DataTable getStationInfo2()
DataTable dt = new DataTable();
dt = helper.GetStationInfo();
  (2)客户端Flex:FlexRemotingDemo.mxml中添加DataGrid容器
&s:Button id="btn2" label="获得14个监测站信息" x="630" y="199" click="btn2_clickHandler(event)"/&
&s:DataGrid id="dg" x="20" y="199" width="600" height="401" dataProvider="{arrColl}"
requestedRowCount="14" textAlign="center"&
&s:columns&
&s:ArrayList&
&s:GridColumn width="{0.21 * this.dg.width}" dataField="jcd_name" headerText="监测点名称"&&/s:GridColumn&
&s:GridColumn width="{0.13 * this.dg.width}" dataField="ssly" headerText="所属流域"&&/s:GridColumn&
&s:GridColumn width="{0.30 * this.dg.width}" dataField="zyzbytr" headerText="主要植被与土壤"&&/s:GridColumn&
&s:GridColumn width="{0.10 * this.dg.width}" dataField="xqsl" headerText="小区数量"&&/s:GridColumn&
&s:GridColumn width="{0.13 * this.dg.width}" dataField="fjswylz" headerText="附近水文雨量站"&&/s:GridColumn&
&s:GridColumn width="{0.13 * this.dg.width}" dataField="jgsj" headerText="竣工时间"&&/s:GridColumn&
&/s:ArrayList&
&/s:columns&
&/s:DataGrid&
  利用封装好的RemoteObejct对象CYMRemoteObject来绑定DataGrid:
[Bindable]
private var arrColl:ArrayCollection = new ArrayCollection();
protected function btn2_clickHandler(event:MouseEvent):void
var ro:CYMRemoteObject = new CYMRemoteObject("ServiceLibraryDemo.Sample","fluorine");
ro.call("getStationInfo2",onResult2);
public function onResult2(evt:CYMRemoteObjectResult):void
if(evt.error)
Alert.show(evt.errorMessage);
arrColl.removeAll();
// 获取列名
var columnName:Array = evt.result.serverInfo.columnNames as A
//获取数据
var columnData:Array = evt.result.serverInfo.initialData as A
var columns:Array=new Array();
for(var rowIndex:int = 0; rowIndex & columnData. rowIndex++)
var obj:Object = new Object();
for(var colIndex:int = 0; colIndex & columnName. colIndex++)
var key:String = columnName[colIndex].toString();
var value:String = columnData[rowIndex][colIndex].toString();
obj[key] =
arrColl.addItem(obj);
  运行结果:
  八  相关文章

我要回帖

更多关于 flex string to int 的文章

 

随机推荐