• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>Flex>文章内容
  • 使用Amfphp实现Flex与php通信
  • 来源:RIA爱好者 作者:Flying 2007-06-09 【

如果你已经看懂使用Fluorine实现Flex与.NET通信这篇文章,你基本上明白了怎样实现Flash与Amfphp的通信。只是在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="flashServices.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 Builder 2的调试(trace篇)   下一篇:使用Fluorine实现Flex与.NET通信
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)