您的位置:首页 > 编程语言 > PHP开发

PHP平台的AFM-RPC实现----amfphp(二)HelloWorld范例

2014-04-11 00:26 453 查看
第一部分讲了amfphp环境配置::http://hi.baidu.com/taotao5453/blog/item/ef942a1f3623e0c5a68669b5.html

这里开始做一个简单的amfphp实现Flex和PHP通信的例子。请安装第一部分配置好amfphp环境再进行下面代码。

1、服务端

在C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\3jk\AMFApp\org\zangsanfeng下新建一个HelloWorld.php,并写入代码:

<?php

class HelloWorld

{

function HelloWorld()

{

$this->methodTable = array (

'sayHelloWorld' => array (

'description' => '将字符串 “嗨!AMF-FPC for PHP”返回给Flex',

'access' => 'remote',

'arguments' => array()

)

);

}

function sayHelloWorld()

{

return "嗨!AMF-RPC for PHP";

}

}

?>

2、Flex客户端

使用Flash Builder或Flex3 新建一个Flex工程,next步骤参考下面三图:

注意:Flex sdk选择4.0以下版本,我的sdk是项目创建完后更改的,我用的sdk3.5。



-



-



-

创建完成后,在main.mxml中添加代码:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

<mx:Script>

<![CDATA[

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

private function getData_Result(e:ResultEvent):void{

myTextArea.text = e.result.toString();

}

private function getData_Fault(e:FaultEvent):void{

myTextArea.text = e.fault.faultString;

}

]]>

</mx:Script>

<mx:RemoteObject id="myService" destination="amfphp"

endpoint="http://localhost/3jk/gateway.php"

source="org.zangsanfeng.HelloWorld" showBusyCursor="true">

<mx:method name="sayHelloWorld" result="getData_Result(event)" fault="getData_Fault(event)"/>

</mx:RemoteObject>

<mx:TextArea id="myTextArea" fontSize="12"/>

<mx:Button label="调用方法" fontSize="12" click="myService.sayHelloWorld();"/>

</mx:Application>

开始调试,调试页面中点击“调用方法”按钮,就会调用远程方法,并将返回结果“嗨!AMF-RPC
for PHP”显示在文本框中。如图:



-

AMFPHP简单原理:

在客户端,服务端方法请求被使用RemoteObject类自动序列化为AMF格式,在服务端,AMFPHP逆序列化AMF信息。当服务端完成处理时,结果又被序列化为AMF格式,并发回Flex应用程序。服务端创建的AMF信息格式与客户端创建的AMF信息格式相同。单独的AMF信息包主体内包含了错误或响应对象,它们被表述成一个ActionScript对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: