PHP + Actionscript AMF(通过SabreAMF) - 如何返回PHP数组并映射到actionscript中的数组/对象

时间:2012-12-30 10:36:36

标签: php actionscript amf

快速注意:我的动作技能是弱酱 ......我没有猴子,所以如果给出正确的建议,我可以解决问题:

因此,我们使用 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处理程序自动将数据集映射到数组(理想情况下)或对象而不使用连接?

连接接缝就像是一个黑客攻击。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用json_encode()通过JSON将其作为字符串发送,然后在AS3中使用任何JSON库将其转换为正确的数据结构。我认为这是最简单的方法......或者说我错了,有人会给我们更好的答案。

编辑:您也可以将其作为XML字符串发送,但我的AS3同事始终坚持使用JSON作为更容易的替代方案。

答案 1 :(得分:1)

你可以使用AMF做你想做的事。 Flash将透明地解释接收的数据。你可能想查看AmfPHP,因为Sabre AMF没有维护。 (免责声明:我运行AmfPHP)。

JSON和XML也可以。 AMF可能需要更多的工作来设置,具体取决于你所知道的。它的主要优点是节省带宽和强打字,所以找出最适合你的方法。

http://www.silexlabs.org/amfphp/

答案 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;