flex基于PHP平台的AMFRPC实现.docx
《flex基于PHP平台的AMFRPC实现.docx》由会员分享,可在线阅读,更多相关《flex基于PHP平台的AMFRPC实现.docx(11页珍藏版)》请在冰豆网上搜索。
flex基于PHP平台的AMFRPC实现
PHP是一种开源的,用于WEB开发的服务器端脚本语言,Flashbuilder4提供了以数据服务为中心的开发方式,大大方便了前段Flex与后端应用服务器的整合,下面将简单介绍Flex与Php进行AMF-RPC通信的方法。
1.首先应该搭建好PHP开发环境,这里我们采用Apache+PHP的开发环境,详细配置过程见之前的说明文章。
2.访问PHP应用程序。
1.在Apache根目录htdocs下新建一个php程序如Helloworld.php文件,代码如下:
php
/*
*FirstPHPclass
*/
classHelloWorld
{
/**
*firstsimplemethod
*@returnsastringforyournickname
*/
functionsay($smessage)
{
return'Mynicknameis'.$smessage;
}
}
?
>
3.新建一个flex项目如HelloWorld,应用程序服务器类型选择“PHP”如图所示.
4.下面开始连接PHP程序。
单击工具栏“数据”菜单下的“连接PHP”子菜单,如图所示,
进入“配置PHP服务”窗口,选择需要调用的Helloworld.php文件,如图所示,单击“下一步”按钮,弹出提示安装ZendAMF的对话框,如图所示,(ZendAMF是ZendFramework的一部分,它提供了一种PHP头端对FlashPlayer和AIR的通信支持)单击“确定”按钮进行安装,安装完成后可以查看到类文件中的定义的方法,如图所示,
单击“完成”按钮后在FlashBulider4主界面的“数据/服务”视图窗口中列出PHP类中的方法,如图所示,
Flex项目的src目录下将在“services.helloWorld”包下自动生成调用PHP服务相关的AS类。
右击“say”方法,选择“配置返回类型”菜单,如图所示,
在“配置返回类型”窗口中选择方法返回的数据类型为“String”,如图所示,“选择测试操作”菜单选项可以对调用的方法进行测试。
在Flex设计模式下选择主界面中的“SayHelloWorld”按钮(Flex程序中添加的一个按钮控件),右击鼠标选择“生成服务调用”菜单项,在“生成服务调用”对话框中选择要调用的服务和操作,如图所示。
单击“确定”按钮后,Flex自动生成调用PHP数据服务的相关代码,如下所示,
xmlversion="1.0"encoding="utf-8"?
>
Applicationxmlns:
fx="
xmlns:
s="library:
//
xmlns:
mx="library:
//minWidth="955"minHeight="600"
xmlns:
helloworld="services.helloworld.*">
Script>
[CDATA[
(以下画线部分为自动生成的部分)
importmx.controls.Alert;
protectedfunctionbutton_clickHandler(event:
MouseEvent):
void
{
sayResult.token=helloWorld.say(/*输入以下内容值*/"HelloWorld!
");
}
]]>
Script>
Declarations>
CallResponderid="sayResult"/>
HelloWorldid="helloWorld"fault="Alert.show(event.fault.faultString+'\n'+event.fault.faultDetail)"showBusyCursor="true"/>
CallResponderid="sayResult2"/>
--将非可视元素(例如服务、值对象)放在此处-->
Declarations>
Panelwidth="80%"height="80%"verticalCenter="0"horizontalCenter="0"backgroundColor="#EEF6F5"
title="AMFPHPExample">
VGroupheight="100%"width="95%"verticalAlign="middle">
Buttonlabel="sayHelloWorld"width="120"height="29"id="button"click="button_clickHandler(event)"/>
Labeltext="Result:
"/>
TextAreawidth="80%"height="70%"id="result_text"text="{sayResult.lastResult}"(用来完成TextArea组件的绑定)/>
VGroup>
Panel>
Application>