使用Red5将Actionscript 3数组转换为Java ArrayList
我正在AS3中创建一个数组,并使用NetConnection将其发送到red5服务器,如下所示:使用Red5将Actionscript 3数组转换为Java ArrayList,java,actionscript-3,red5,netconnection,Java,Actionscript 3,Red5,Netconnection,我正在AS3中创建一个数组,并使用NetConnection将其发送到red5服务器,如下所示: var data:Array = new Array(); data.push("getTest"); NC.call("getUsers", new Responder(onSuccess, onFail), data); 在服务器端: public Object getUsers(Object[] params) { logger.warn("params = "+par
var data:Array = new Array();
data.push("getTest");
NC.call("getUsers", new Responder(onSuccess, onFail), data);
在服务器端:
public Object getUsers(Object[] params) {
logger.warn("params = "+params);
logger.warn(params[0]);
List<Object> u = (ArrayList<Object>)params[0];
logger.warn(u.get(0));
return params;
}
公共对象getUsers(对象[]参数){
logger.warn(“params=“+params”);
logger.warn(参数[0]);
列表u=(ArrayList)参数[0];
logger.warn(u.get(0));
返回参数;
}
然而,该行:
List<Object> u = (ArrayList<Object>)params[0];
List u=(ArrayList)参数[0];
Seams可能由于某些原因而失败。我对Java不是很熟悉,但我认为在尝试传入一个参数数组时,AMFPHP也遇到了类似的远程处理问题,但没有将其作为服务器端的数组读取。我的解决方案是(在Actionscript中)使用这个方法。在您的情况下,它看起来像:
var data:Array = new Array();
data.push("getTest");
NC.call.apply(this, ["getUsers", new Responder(onSuccess, onFail)].concat(data));
也许也能为你工作?希望能有所帮助。你也可以使用Flex中的AS3 Vector和ArrayCollection和Red5。不能说我知道“应用”,非常聪明