最近做flash与java的交互,我使用网上的Helloword例子的代码,传输字符串没有问题,
但如果java返回的是ArrayList集合,flash好像没有显示返回的数据
是不是flash不能接收ArrayList,请教大家有没有其他方法解决
mxml的代码
[code="java"]
<?xml version="1.0" encoding="utf-8"?>
layout="absolute">
mx:Script
<![CDATA[
import mx.rpc.events.ResultEvent;
function gg(evnet:ResultEvent):void{
var ff:Array = evnet.result as Array;
ggg.text = ff[0][1];
}
function remotingSayHello():void{
h.hello(nameInput.text);
}
]]>
result="gg(event)"
endpoint="http://localhost:8080/firstFlex/messagebroker/amf" >
x="144" y="193"/>
/mx:Application
[/code]
xml的配置
[code="java"]
com.Hello
[/code]
java的代码
[code="java"]
package com;
import java.util.ArrayList;
public class Hello {
public ArrayList hello(String name){
ArrayList resultlist=new ArrayList();
System.out.println("flex调用我了,真好~~~~");
String[] s1={"01","数据库","Oracle",name};
String[] s2={"02","MySql","SQLServer",name};
resultlist.add(s1);
resultlist.add(s2);
return resultlist;
}
}
[/code]
呵呵,补充下
主要是注意要把dataProvider值设置成java返回的数据
接收返回值时用ArrayCollection类型
刚我上面的例子数据室从xml读取
可以传ArrayList,你得看看flex中mx:DataGrid mx:DataGridColumn的用法。。建议初学flex的看下Flex 3 Cookbook.pdf这个电子文档
DataGridColumn 标签指定列表头标题和dataProvider 内对象属性的显示顺序。
DataGridColumn 的dataField 属性指定显示该列的对象属性。这个例子中,对象的range 属
性没有被显示在DataGrid 控件中,因为没有DataGridColumn 的dataField 与range 属性相关
联:
Code View:
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="initApp()">
resultFormat="object"
result="onResult(event)"/>
width="100%"
height="100%"
dataProvider="{homesForSale}">
mx:columns
dataField="total"/>
dataField="city"/>
dataField="state"/>
/mx:columns
/mx:DataGrid
mx:Script
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
[Bindable]
private var homesForSale:ArrayCollection;
private function initApp():void {
this.srv.send();
}p
private function onResult(evt:ResultEvent):void {
this.homesForSale = evt.result.data.region;
}
]]>
/mx:Script
/mx:Application
可以传AyyayList的
你用flex中的ArrayCollection试试
java ArrayList对应flex类-->[url=http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/mx/collections/ArrayList.html]mx.collections.ArrayList[/url]
debug 一下就知道了