快速注意:我的动作技能是弱酱 ......我没有猴子,所以如果给出正确的建议,我可以解决问题:
因此,我们使用 SabreAMF 来处理对后端的AMF调用。
事情很顺利。
回调服务器和actionscript方面都按预期工作。
我们想要解决的一个问题是:
就目前而言,当我们需要返回一组数据(数组)时,我们只需通过执行类似的操作来连接它(在php端):
return 'VALUE1|VALUE2|VALUE3';
然后在动作脚本方面我们做这样的事情:
var parts:Array=result.split('|');
/* parts[0] = VALUE1 , parts[1] = VALUE2 , parts[2] = VALUE3 */
上述工作正常,但我不能帮助,但认为必须有一个更清洁的方法来做事。
我们想做点如下的事情:
PHP结束(SabreAMF):
return array('Param1'=>'Value1','Param2'=>'Value2','Param3'=>'Value3');
并在actionscript端自动将此数据映射到数组或对象。理所当然的是,一个人可以返回数组,并在动作脚本上正确映射(并自动地,手指交叉)。
所以,问题如下:
当使用SabreAMF处理对基于PHP的后端的动作脚本AMF调用时,是否可以返回一个数组并具有动作脚本AMF处理程序自动将数据集映射到数组(理想情况下)或对象而不使用连接?
连接接缝就像是一个黑客攻击。
谢谢!
答案 0 :(得分:1)
使用json_encode()通过JSON将其作为字符串发送,然后在AS3中使用任何JSON库将其转换为正确的数据结构。我认为这是最简单的方法......或者说我错了,有人会给我们更好的答案。
编辑:您也可以将其作为XML字符串发送,但我的AS3同事始终坚持使用JSON作为更容易的替代方案。答案 1 :(得分:1)
你可以使用AMF做你想做的事。 Flash将透明地解释接收的数据。你可能想查看AmfPHP,因为Sabre AMF没有维护。 (免责声明:我运行AmfPHP)。
JSON和XML也可以。 AMF可能需要更多的工作来设置,具体取决于你所知道的。它的主要优点是节省带宽和强打字,所以找出最适合你的方法。
答案 2 :(得分:0)
PHP AMF3扩展可以更快地合并到您的项目中。
检查一下 - https://github.com/neoxic/php-amf3
// Have your data
$data = array('Param1'=>'Value1','Param2'=>'Value2','Param3'=>'Value3');
// Encode into AMF3
$str = amf3_encode($data);
// Print to stdout (or use your way to pass it to the client)
print $str;