使用Amfphp实现Flex与php通信
作者:Flying 日期:2007-03-19
本教程简要讲解怎样实现使用Amfphp实现Flash与php的通信。通过本例的学习,我们将了解使用Amfphp Flash Remoting开发Flex RIAs的基本流程。
如果你已经看懂使用Fluorine实现Flex与.NET通信这篇文章,你基本上明白 了怎样实现Flash与Amfphp的通信。主要有两点不同。
1.Web应用的根目录不同,如下图。

发布文件夹的路径不同,如下图。

我们改进了一下mxml,为sayHello()方法添加了result事件fault和事件,当调用远程方法成功时就会侦听到result事件并执行Actionscript代码块中的resultHandler方法,反之则会侦听到fault事件并执行faultHandle方法。代码加下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:RemoteObject id="service" destination="amfphp"
source="tutorials.remoting.HelloWorld" showBusyCursor="true" >
<mx:method name="sayHello" result="resultHandler(event)"
fault="faultHandler(event)" />
</mx:RemoteObject>
<mx:Script>
<![CDATA[
import mx.managers.CursorManager;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
private function resultHandler(re:ResultEvent):void
{
lblResult.text = re.result.toString();
}
private function faultHandler(fault:FaultEvent):void
{
CursorManager.removeBusyCursor();
lblResult.text = "Message:" + fault.fault.faultString;
}
]]>
</mx:Script>
<mx:TextInput id="txtName" />
<mx:Button label="Say Hello" click="service.sayHello(txtName.text)" />
<mx:Label id="lblResult" fontSize="18"/>
</mx:Application>
运行测试一下,label将显示来自Amfphp Flash Remoting的问候。整一个错误出来,比如修改一下方法名或服务路径,再运行程序,label将显示 错误信息。可见,这样的代码更像在Flash中使用Flash Remoting,更有扩展性。
补充:要用Flex编辑Amfphp Flash Remoting应用程序,你还要手动添加services-config.xml。我已经给大家编写好了,点击下载并解压到Amfphp根目录下。
上一篇: 使用Fluorine实现Flex与.NET通信
下一篇: CFEclipse——开发ColdFusion的利器
文章来自: 本站原创
Tags: Amfphp RemoteObject FlexBuilder2
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论

