2009-02-16 95 views
1

我是新来flex开发我的问题是我如何通过使用php的flex 3和mysql数据库之间传递变量?我被告知最好的方法是AMFPHP,但这似乎是一个过度杀或可能不是不确定..任何想法?在flex和php之间传递变量

回答

3

我会使用json over xml,因为json会传输更少的字节,而php的json_encode($ object)是快速且容易的。

我会在amfphp上使用json,因为json是通用的。例如,我可以通过返回json为flex或javascript创建一个Web服务。

您可能会看看这个article用于json,amfphp和xml之间的比较。此外,flex,php和json上还有一个不错的tutorial

1

有几种选择可供您选择。实质上,它归结为您想如何处理围栏PHP侧的数据。

我花时间调查的两个将是简单的XML(我的第一选择)和AMFPHP。

XML: Flex可以非常方便地使用XML数据工作,甚至可以自动将ActionScript映射到/从ActionScript对象(一般地,或类似于xobj project on GoogleCode到类型化实例)。同样,在PHP代码中有很多可用于处理XML的支持。

AMFPHP: AMFPHP为您提供了通过电线将类型化的ActionScript对象传递到您的PHP代码的方法。 AMFPHP项目中包含了一些工具,可以使PHP在PHP上的工作变得简单。

2

AMFPHP没有真正积极开发。现在最好的选择是使用Zend_Amf http://wadearnold.com/blog/?page_id=155,Zend和Adobe都支持Zend_Amf。

不要因为需要Zend Framework组件而感到害怕。该框架是模块化的,您可以使用自己的自定义php类访问数据,而无需产生Zend Framework学习曲线。

使用AMF的好处在于它是一个二进制数据传输,速度非常快。

另外,使用XML甚至JSON,如果你只是想让你的Flex应用程序获得结果数据的API调用,那么这是一个烦人的额外步骤。如果出于某种原因需要将输出数据处理为xml或json,则可以通过扩展或创建将数组和对象的数据转换为xml或json的新控制器/服务轻松添加到您的应用程序中

1

如果你正在做一个简单的查询,我会以普通的POST数据传递你的数据。您可以使用Flex中的HTTPService组件来执行此操作。在PHP方面,我将用XML字符串进行响应,并将HTTPService resultFormat设置为“e4x”(用于XML的Ecmascript),以便对结果数据进行简单的对象操作。

这里是的HTTPService的LiveDocs中参考:http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_2.html

对于更复杂的查询/操作,也有使用Flex的RemoteObject与AMF作为数据协议的选择。在PHP方面,您可以使用zend框架AMF组件进行通信。

这里是的RemoteObject的LiveDocs中参考:对于Zend的AMF http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_4.html

而且下载页面:http://framework.zend.com/download/amf