amfphp安装使用 2008-10-21 10:12 http://amfphp.sourceforge.net/ 下载最新的版本
1 解压到:E:\sites\mysite\amfphp
2 修改E:\sites\mysite\amfphp\gateway.php //$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1"); $gateway->setCharsetHandler( "none", "ISO-8859-1", "ISO-8859-1" ); //修改by许雷,2008.10.21
3 services_config.xml <?xml version="1.0" encoding="utf-8" ?> <services-config> <services> <service id="amfphp-flashremoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="amfphp"> <channels> <channel ref="my-amfphp" /> </channels> <properties> <source>*</source> </properties> </destination> </service> </services> <channels> <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel"> <endpoint uri="http://www.mysite.com/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint" /> </channel-definition> </channels> </services-config>
4 E:\sites\mysite\amfphp\services\getUserService.php <?php class getUserService { function getUsers(){ mysql_connect('172.20.82.173','edu','edu'); mysql_select_db('edu5'); mysql_query('SET NAMES UTF8'); $sql = 'SELECT * FROM edu_user_all LIMIT 1'; $result = mysql_query($sql); $rows = mysql_fetch_array($result); return $rows; } }
//$myobj = new getUserService(); //print_r($myobj->getUsers()); ?>
5 RemotingExample.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()"> <mx:Script> <![CDATA[ import mx.rpc.http.HTTPService; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import flash.events.Event; import mx.managers.CursorManager; internal function initApp():void { service.getOperation('getUsers').send(); } internal function resultHandler(evt:ResultEvent):void { CursorManager.removeBusyCursor(); myList.labelField = "username"; myList.dataProvider = evt.result; } ]]> </mx:Script> <mx:RemoteObject id="service" showBusyCursor="true" source="getUserService" destination="amfphp"> <mx:method name="getUsers" result="resultHandler(event)" /> </mx:RemoteObject> <mx:Panel styleName="myPanel" layout="absolute" title="名册" width="200" height="400"> <mx:List id="myList" width="100%" height="100%"></mx:List> </mx:Panel> </mx:Application>
7 编译: E:\sites\mysite\swf>mxmlc RemotingExample.mxml -locale en_US -services services_config.xml
8 如果要传递参数到服务器: [Bindable] public class Reservation { public var reservationId:int = 0; public var fullName:String = ""; public var address:String = ""; public var city:String = ""; public var state:String = ""; public var postalCode:String = ""; public var phone:String = ""; public var dateNeeded:String = ""; public var options:String = ""; public function Reservation() { } }
var dataObj:Reservation = new Reservation();
dataObj.reservationId = 0; dataObj.fullName = fullname.text; dataObj.address = address.text; dataObj.city = city.text; dataObj.state = state.text; dataObj.postalCode = postalcode.text; dataObj.phone = phone.text; dataObj.dateNeeded = dateNeeded.text; dataObj.options = selectedOptions.toString();
<mx:RemoteObject id="hs" destination="ColdFusion" source=”reservations.ReservationService” fault="faultHandler(event)"> <mx:method name="doCreate" result="resultHandler(event)"/> </mx:RemoteObject>
hs.doCreate(dataObj);
------------------------------向服务器传递参数实例-------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()"> <mx:Script> <![CDATA[ import mx.rpc.http.HTTPService; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import flash.events.Event; import mx.managers.CursorManager; internal function initApp():void { //service.getOperation('getUsers').send(); service.doCreate("test123"); } internal function resultHandler(evt:ResultEvent):void { CursorManager.removeBusyCursor(); myList.labelField = "username"; myList.dataProvider = evt.result; } ]]> </mx:Script> <mx:RemoteObject id="service" showBusyCursor="true" source="getUserService" destination="amfphp"> <mx:method name="getUsers" result="resultHandler(event)" /> <mx:method name="doCreate" result="resultHandler(event)" /> </mx:RemoteObject> <mx:Panel styleName="myPanel" layout="absolute" title="名册" width="200" height="400"> <mx:List id="myList" width="100%" height="100%"></mx:List> </mx:Panel> </mx:Application>
php文件: <?php class getUserService { function getUsers(){ mysql_connect('172.20.82.173','edu','edu'); mysql_select_db('edu5'); mysql_query('SET NAMES UTF8'); $sql = 'SELECT * FROM edu_user_all'; $result = mysql_query($sql); $rows = mysql_fetch_array($result); return $rows; } function doCreate($str){ return array($str.'in php'); } }
//$myobj = new getUserService(); //print_r($myobj->getUsers()); ?>
----------分析---------------- 这里:service.doCreate("test123");直接向服务器的doCreate方法传递了一个字符串 还可以传递对象。
|
相关推荐
使用`RemoteObject`组件,我们可以设置AMF通道并连接到AMFPHP服务器,以便发送和接收数据。 3. **ActionScript编程**:在Flex中,我们需要编写ActionScript代码来处理用户交互,例如监听按钮点击事件,调用服务器上...
Flex AMFPHP 1.9 是一款用于连接Adobe Flex与PHP服务器端的开源框架,它提供了高效的二进制数据交换格式AMF(Action Message Format),从而实现Flash客户端与PHP服务端之间的快速通信。AMF是一种低级的数据表示格式...
4. **服务定义**:在Flex客户端,使用RemoteObject组件来定义与AMFPHP服务的连接。RemoteObject的endpoint属性应指向AMFPHP服务的URL,服务方法映射到AMFPHP服务器上的对应函数。 5. **数据交换**:在Flex中,可以...
当Flex客户端需要与服务器通信时,它可以通过AMFPHP与PHP服务端建立连接,进行数据交换。这种通信方式使得开发人员可以利用Flex的强大可视化工具创建用户界面,同时利用PHP的服务器端处理能力。 在实际应用中,...
在Flex应用中,这些组件通常用于处理与AMFPHP的连接和数据交换。 2. `amfphp 1.9.zip`:这是AMFPHP的源代码或安装包,版本号为1.9。用户可以解压后安装在自己的PHP环境中,然后按照文档的指导设置和使用AMFPHP。 总...
3. **配置Flex**:在Flex项目中设置AMF端点,连接到AMFPHP服务器,并调用暴露的服务。 4. **数据交换**:通过AMFPHP,Flex客户端可以发送请求并接收响应,实现数据的双向传递。 **总结** AMFPHP 2.1.1是PHP开发者...
它允许PHP应用程序使用二进制协议(AMF)与Flash、Flex、Air或其他支持AMF的客户端进行通信,从而实现快速、低级别的数据传输。AMFPHP的核心目标是提供一种比传统HTTP或SOAP协议更快、更轻量级的方式来实现Web服务。...
本篇将详细讲解如何使用Flex与C#和J2EE平台进行数据库连接。 一、Flex与C#连接数据库 1. **数据访问层(DAL)**:在C#环境中,通常使用ADO.NET作为数据访问层,它提供了对SQL Server、Oracle等数据库的直接访问。...
在这个实例中,Flex可能通过AMFPHP或 BlazeDS这样的服务器端技术来与Access数据库建立连接。 2. **AMF(Action Message Format)**: AMF是一种二进制数据格式,用于在Flex客户端和服务器之间高效地传输数据。...
"amfphp-example"中的示例展示了如何实现PHP与Flex或Flash应用程序的无缝连接,提供了清晰的命名规范,使得开发者能够快速理解和使用这些接口。 **标签:“amfphp flex flash”** 这三个标签分别对应了AMFPHP框架...
2. 数据访问组件:在Flex中,我们可以使用数据访问组件如ADO.NET,Flash Remoting,AMFPHP,BlazeDS等来与后端数据库进行通信。对于SQL连接,BlazeDS是最常用的一种,因为它支持使用HTTP协议传输数据,这使得跨域...
3. **客户端调用**:在Flex应用程序中,可以使用Flash Player提供的`NetConnection`和`RemoteObject`类来连接到myAMFPHP服务器并调用服务。这使得前端可以直接操作后端数据,实现数据的即时更新。 4. **数据类型...
综上所述,这个源码包提供了一个基于Flex技术的个人网站管理系统,通过MXML和AS3实现了富交互的前端,结合Cairngorm MVC框架优化了代码结构,利用AMFPHP实现了高效的数据通信,是学习和研究FLEX应用开发的好素材。
3. **ActionScript数据库操作**:在Flex中,通常使用ADO.NET或AMFPHP等技术与服务器端的数据库进行通信。ActionScript代码负责发送请求,处理返回的数据,并更新用户界面。 4. **服务调用**:在Flex应用中,数据...
此外,还有其他数据服务选项,如AMFPHP,但LCDS提供了一些额外的便利和特性,使得与Flex的集成更为顺畅。 Java,作为全球广泛使用的编程语言,是开发LCDS后端服务的基础。开发者可以通过Java编写业务逻辑和服务,...
5. **Spring BlazeDS Integration**: Spring框架提供了与BlazeDS集成的模块,使得Java开发者能够轻松地将Flex前端与Spring应用后端连接起来,利用Spring的依赖注入和管理特性。 6. **数据模型和状态管理**: 在整合...
介绍了一种开源的远程库AMFPHP,它可以用于连接PHP和Flex。本章还展示了Flex与一些流行的PHP工具、框架和库的合作。 - **第9章:与JavaScript和HTML的对话:网页集成** 解释了Flex如何与客户端技术集成,帮助...
AMFPHP支持序列化和反序列化多种复杂类型数据,包括对象、数组以及资源数据连接资源(例如数据库查询结果)。由于这种支持,开发者可以方便地在服务器端执行数据库查询,然后通过AMFPHP将结果传回客户端。此外,...
通过PHP的AMFPHP库或 Zend AMF,PHP能够接收并处理来自Flex的AMF请求,返回处理结果。 4. 数据交换格式: 在PHP与Flex之间传输数据时,常见的格式有XML、JSON和AMF。XML和JSON是文本格式,易于理解和调试,而AMF是...