I faced a problem sending Array of Actionscriptobject to client.
I using:
Code: Select all
ActionscriptObject ResponseObj = new ActionscriptObject();
LinkedList<ActionscriptObject> a = new LinkedList<ActionscriptObject>();
for(i=0;i<aCellsToOpen.size();i++)
{
a.add(aCellsToOpen.get(i));
trace(String.valueOf(aCellsToOpen.get(i).get("x")));
trace(String.valueOf(aCellsToOpen.get(i).get("y")));
trace(String.valueOf(aCellsToOpen.get(i).get("val")));
}
ResponseObj.putNumber("idGame", size);
ResponseObj.putNumber("idUser", id);
ResponseObj.putNumber("action", iAction);
ResponseObj.putCollection("cell_arr", a);
ResponseObj.putNumber("idUserNext", 3);
aRecipeends.add(user.getChannel());
sendResponse(ResponseObj, -1, null, aRecipeends);
But on the client I get only
Code: Select all
<msg t='xt'><body action='xtRes' r='-1'><![CDATA[<dataObj><var n='idUserNext' t='n'>3</var><var n='idGame' t='n'>1</var>[b]<obj o='cell_arr' t='a'><obj o='0' t='a'></obj></obj>[/b]<var n='action' t='n'>1001</var><var n='idUser' t='n'>1</var></dataObj>]]></body></msg>, (len: 260)
Code: Select all
private function evExt(pEvent:SFSEvent):void
{
var obj:Object = pEvent.params.dataObj;
if (obj["cell_arr"] != null)
{
trace("celll:" + obj["cell_arr"][0]);
}
}