有关flex的值对象有关问题

有关flex的值对象问题
当我用remoteobject引用java的方法得到一个值对象我要如何对它进行解析。要知到在那个值对象中还嵌套了一个值对象,我发现我没有办法用as解析。难道as只支持一层对象。
------解决方案--------------------
不管对象多复杂,就算对象里嵌套了几层对象都没关系只要与Java端的实体类Object对应即可

所谓对应简单地说就是用as的语法将Java端的Object重新定义一遍

在as的object中声明下[RemoteClass(alias="java端包名.类名")]//前后台绑定

比如:

[Bindable]
[RemoteClass(alias="com.bean.Person")]
public class Person{
   public Student student;
}

[Bindable]
[RemoteClass(alias="com.bean.student")]
public class Student {
   public var name:String;
   public var age:int;
}
------解决方案--------------------
你试试这样行不行!

比如DataGrid要显示name的属性

设下dataField = "{Student.name}"

我没试过~~~看看行不行,不行的话只能像你说的重组一个Object再赋值
------解决方案--------------------
这位仁兄好像还没明白问题!虽然对象类型可能无法解析,但是属性总归是有属性名称的吧,那么这个复杂对象的复杂类型的属性的类型虽然被Flex解析成了Object类型,但是他的属性名没有变!你一样可以通过属性名访问该对象!但是你不要奢求他可以只能感应(.出来),废话说了那么多,我都有点晕了!举个例子:
比如UserInfo对象有个City类型的city属性,那么其在Java中和Flex中的不同如下:
City.java

public class City {
private long id;
private String name;

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

UserInfo.java

public class UserInfo {
private long id;
private String loginName;
private String password;
private City city;

public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public City getCity() {
return city;
}
public void setCity(City city) {
this.city = city;
}
}

那么你把一个用户的List<UserInfo>传到Flex中就会变成(没用映射类型的话)一个元素类型为Object的Array,
而Object就是Java中UserInfo:

public class Object(Java中的UserInfo)
{
public var id :Number;
public var loginName :String;
public var password :String;
public var city :Object;//Java中City
}

public class Object(Java中的City)
{
public var id :Number;
public var name :String;
}

那么,既然能识别出来该属性了,虽然类型是Object的但是你同样可以访问其属性的,例如我要在Flex中访问UserInfo的属性city的name属性,那么这样写代码就可以了:

var item :Object = userList[0];//比如访问第一个元素
var cityName :String = item.city.name;
//或者
var cityName :String = item["city"]["name"];

这样应该明白了吧O(∩_∩)O~