上篇是flex解析java对象,这一片是java解析flex的传递的对象,并加入问候语返回。
在上一篇的基础上,修改一下代码:
User.java代码如下:
- packagecom.test;
- importjava.io.Serializable;
- publicclassUserimplementsSerializable{
- privateStringstrName;
- privateStringstrAddress;
- publicUser(){}
- publicStringgetStrName(){
- returnstrName;
- }
- publicvoidsetStrName(StringstrName){
- this.strName=strName;
- }
- publicStringgetStrAddress(){
- returnstrAddress;
- }
- publicvoidsetStrAddress(StringstrAddress){
- this.strAddress=strAddress;
- }
- }
MyFirstFlex.java代码如下:
- packagecom.test;
- publicclassMyFirstFlex{
- publicUsergetUser(Useruser)
- {
- Useruser1=newUser();
- user1.setStrAddress("地址是"+user.getStrAddress());
- user1.setStrName("姓名是"+user.getStrName());
- returnuser1;
- }
- }
MyFirstFlex.mxml代码如下:
- <?xmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute">
- <mx:Script>
- <![CDATA[
- importmx.rpc.events.ResultEvent;
- importmx.controls.Alert;
- privatefunctiongetUser():void
- {
- varuser:User=newUser();
- user.strName=txtName.text;
- user.strAddress=txtAddress.text;
- userRO.getUser(user);
- userRO.addEventListener(ResultEvent.RESULT,getROResult);
- }
- privatefunctiongetROResult(e:ResultEvent):void
- {
- varuser:Object=e.resultasObject;
- if(user!=null)
- {
- txtName.text=user.strName;
- txtAddress.text=user.strAddress;
- }
- else
- {
- Alert.show("没有结果!");
- }
- }
- ]]>
- </mx:Script>
- <mx:RemoteObjectid="userRO"destination="getUser"/>
- <mx:Panelx="109"y="65"width="411"height="249"layout="absolute"fontSize="12">
- <mx:Labelx="69"y="36"text="姓名"/>
- <mx:Labelx="69"y="118"text="地址"/>
- <mx:Buttonx="189"y="161"label="请求"id="btnRequest"click="getUser()"/>
- <mx:TextInputx="126"y="34"id="txtName"/>
- <mx:TextInputx="126"y="116"id="txtAddress"/>
- </mx:Panel>
- </mx:Application>
User.as代码如下(我暂时放在与MyFirstFlex.mxml同一目录***意,编写完成后确保与编译后的.swf在同一目录):
- package
- {
- [RemoteClass(alias="com.test.User")]
- publicclassUser
- {
- publicvarstrName:String;
- publicvarstrAddress:String;
- publicfunctionUser()
- {
- }
- }
- }
注意:[RemoteClass(alias="com.test.User")]用于对应User.java,这个类中的字段类型、名称必须与User.java保持一致。
运行:
得到如下界面:
输入信息:
点击请求按钮: