Flex一个RemoteObject调用JAVA对象里面的多个方法
1、FLEX集合PureMVC进行项目开发(FLEX+BlazeDS+PureMVC)
2、FLEX的持久层调用java层代码的时候,如果要调用一个对象里面的多个方法,做法如下
package com.wynlink.model
{
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.Operation;
import mx.rpc.remoting.RemoteObject;
import org.puremvc.as3.patterns.proxy.Proxy;
public class MobilePhoneProxy extends Proxy
{
public static const NAME:String = "MobilePhoneProxy";
public static const GET_PHONE_USER_CALLBACK:String = "getPhoneUserCallBack";
public static const GET_PHONE_TEMPLATE_CALLBACK:String = "getPhoneTemplateCallBack";
private var mobile:RemoteObject;
public var op1:Operation;
public var op2:Operation;
public function MobilePhoneProxy(data:Object=null)
{
super(NAME, data);
mobile = new RemoteObject();
mobile.destination = "phone";
mobile.endpoint = "/Project_ydq/messagebroker/amf";
mobile.showBusyCursor = true;
//操作定义
op1 = new Operation();
op1.addEventListener(ResultEvent.RESULT, getPhoneUserCallBack);//如果是此事件,则回调此方法
op2 = new Operation();
op2.addEventListener(ResultEvent.RESULT, getPhoneTemplateCallBack);
//多个操作加入远程对象
mobile.operations = {"getPhoneUser" : op1,"getPhoneTemplate" : op2};//JAVA对象里的方法
//mobile.addEventListener(ResultEvent.RESULT, showSMSshowSMS);
}
private function getPhoneUserCallBack(event:ResultEvent):void {
var re:ArrayCollection = event.message.body as ArrayCollection;
if(re.length == 0){
this.sendNotification(GET_PHONE_USER_CALLBACK,re);
}
this.sendNotification(GET_PHONE_USER_CALLBACK,null);
}
private function getPhoneTemplateCallBack(event:ResultEvent):void {
}
/* 获取接收短信的所有用户 */
public function getUserInfo():void {
//mobile.getPhoneUser();
op1.send();
}
/* 获取短信模板 */
public function getPhoneTemplate():void {
op2.send();
}
public function ShowMobilePhonePanel():void{
}
}
}
1 楼
qiyangyang2020
2011-09-07
这个不错。
public function getNewMessage():void{
var remoteOperation:RemoteObject = new RemoteObject();
remoteOperation.destination = "helloFlex";
var op0:AbstractOperation = remoteOperation.getOperation( "printFlexContext" );
op0.addEventListener(ResultEvent.RESULT,customOperationHandleResult);
op0.addEventListener(FaultEvent.FAULT,customOperationHandleFault);
op0.send("Jack");
}
还有没有更方便的办法。还是要监听两个方法。
假如,我想发送n条数据,返回时候能让我知道是哪个请求返回的,请给代码提示。谢谢。