- 浏览: 138407 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
用RemoteObject 实现Flex与AMFPHP通信
AMFPHP 下载地址 (http://amfphp.org/) :
http://sourceforge.net/projects/amfphp/files/amfphp/amfphp%201.9%20beta2/amfphp-1.9.beta.20080120.zip/download
解压到web容器目录 (C:\Inetpub\wwwroot)。我在这一步遇到的问题是,直接把amfphp文件夹从压缩包里拖过去后,访问localhost/amfphp/gateway.php 以及 localhost/amfphp/browser ,需要输入本机用户名和密码,并且工作不正常。可能是权限问题。
于是在wwwroot中手动新建一个文件夹,复制amfphp中内容进去,然后删除之前的amfphp,并把新建文件夹改名为amfphp。解决了。
测试: 访问localhost/amfphp/gateway.php 以及 localhost/amfphp/browser
browser这个Flex Application会自动检测C:\Inetpub\wwwroot\amfphp\services 中的php类和方法。
此AMFPHP版本由于PHP版本更新的缘故,需要修改一个文件,替换掉最新PHP不提倡的一个方法。参见:
http://xltank.iteye.com/admin/blogs/583991
更改后,测试通过。
在C:\Inetpub\wwwroot\amfphp\services 中添加PHP类和方法后,可以再browser中的列表里看到。
例如:
test.php
<?php class test { function say($sMessage) { return 'You said: ' . $sMessage; } } ?>
和test1.php
<? class test1{ function test($str){ return $str." end"; } }
*****
配置好AMFPHP后,在
先在C:\Inetpub\wwwroot下新建文件夹(testflex),然后在Flex中新建Flex项目(testflex):
在第一个面板中, Application server type : PHP
第二个面板中,
Web Root : C:\Inetpub\wwwroot\testflex
Root URL :http://localhost/testflex
Output folder : C:\Inetpub\wwwroot\testflex
第三个面板中,
Output folder URL : http://localhost/testflex
完成。
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.controls.Alert; import mx.managers.CursorManager; import mx.rpc.events.ResultEvent; private function initApp():void { service.say("123333"); service2.test("111111111"); } private function resultHandler(evt:ResultEvent):void { CursorManager.removeBusyCursor(); Alert.show(evt.result.toString()); } private function resultHandler2(evt:ResultEvent):void { CursorManager.removeBusyCursor(); Alert.show(evt.result.toString()); } ]]> </mx:Script> <mx:RemoteObject id="service" showBusyCursor="true" source="test" destination="amfphp"> <mx:method name="say" result="resultHandler(event)" /> </mx:RemoteObject> <mx:RemoteObject id="service2" showBusyCursor="true" source="test1" destination="amfphp"> <mx:method name="test" result="resultHandler2(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>
复制C:\Inetpub\wwwroot\amfphp\browser 中的services-config.xml 到Flex项目src中,并修改< endpoint uri =" http://flashservices/gateway.php " 为 < endpoint uri =" http://localhost/amfphp/gateway.php "
在testflex项目的编译参数中添加 -services=services-config.xml。
到这里可以debug了。没问题的话,会弹出两个Alert窗口。
发表评论
-
Flex从swf中加载资源和类
2013-12-10 09:37 784需要为直播播放器做几个新的样式,想将每个样式的布局XML和 ... -
swf加载swf的一些问题
2013-03-20 17:31 7351,swfParent 加载 swfChild,如果有交互, ... -
NetStream appendBytes 一点经验
2013-03-20 16:25 2645最近在做基于 NetStream ... -
【译】HTML5还需要什么才能击败Flash(part 2)
2012-04-01 17:53 0What else does HTML5 need to ... -
【译】HTML5还需要什么才能击败Flash(part 1)
2012-04-01 16:36 1111What else does HTML5 need to de ... -
AS 函数作用域、函数闭包、限界方法
2012-03-30 10:21 1503作用域链(scope chain): 任何时候函数开始 ... -
在AS3中自定义全局方法
2012-03-29 11:17 994http://en.flash-ripper.com/2007 ... -
Flex Class object(类对象)构成、traits和prototype
2012-03-29 10:59 1593先贴张图: 每个矩形代表一个对象。CA代表class ... -
使用flex sdk3.6的asdoc遇到的问题及解决方法
2012-03-26 10:24 1993想要对一个组件项目导出asdoc。组件的sdk是3.6,但使用 ... -
UIComponent添加Image不显示
2012-03-18 17:32 1035在UIComponent中添加Image组件,图片不显示。 ... -
Flex优化技巧
2012-03-30 09:46 921http://www.jb51.net/article/182 ... -
Flex中多个柱状图和折线图的问题
2012-02-28 17:53 2024做了个柱状图和折线图的混合图表,2根3D的柱子,6根折线,遇到 ... -
AdvancedDatagrid的dataprovider属性
2012-02-22 10:15 870高级dataGrid的dataProvider的set方法里并 ... -
Sprite的宽高设置及Flex组件的混淆
2012-02-02 10:23 1716由于Bitmap和InteractiveObject同级,都继 ... -
Flex SDK3.5 PollingChannel.as 存在内存泄露bug的一种解决方法
2011-12-31 15:32 1322bug见前面的一篇文章: http://xltank.ite ... -
TextInput的ErrorString样式
2011-10-25 13:08 918http://blog.minidx.com/2008/05/ ... -
【转】Flash Player的 mm.cfg文件
2011-10-08 17:17 5364http://jpauclair.net/mm-cfg-sec ... -
Flex trace() 保存路径
2011-10-08 17:11 1110http://help.adobe.com/en_US/fle ... -
给ItemRenderer传参
2011-08-18 17:19 1563给ItemRenderer传递初始参数,可以根据参数灵活生成I ... -
AdvancedDatagrid改变行的颜色
2011-08-16 15:25 1655最早我尝试重写AdvancedDatagrid的drawRow ...
相关推荐
AMFPHP(Action Message Format for PHP)是一种PHP扩展,它允许服务器端的PHP代码与客户端的Flex应用程序进行高效、低延迟的数据交换。Flex是Adobe开发的一款用于构建富互联网应用程序(RIA)的框架,它主要使用...
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客户端配置远程对象(RemoteObject),指定AMFPHP服务的URL,以实现客户端与服务器之间的通信。 总的来说,AMFPHP 2.1.1是一个强大的工具,它简化了Flex和PHP之间的数据交互,提升了应用的...
使用 RemoteObject 与 AMFPHP 进行通信是 Flex 应用程序与 PHP 后端进行交互的另一种方式。示例 1:简单的数据通信(amfphpHello2Demo),展示了如何使用 RemoteObject 与 AMFPHP 实现简单的数据交互。示例 2:复杂...
3. **客户端调用**:在Flex应用程序中,可以使用Flash Player提供的`NetConnection`和`RemoteObject`类来连接到myAMFPHP服务器并调用服务。这使得前端可以直接操作后端数据,实现数据的即时更新。 4. **数据类型...
2. **AMFPHP**:AMFPHP是一个开源的服务器端组件,它实现了Adobe的Action Message Format(AMF),允许Flex应用与PHP服务器进行高效的数据交换。在C#环境中,可以利用AMFPHP的C#版本(如Red5Pro)来实现Flex与C#的...
在Flex客户端中,首先通过RemoteObject类初始化远程对象login_remoteObj,并设置其属性。初始化后,客户端监听doLogin操作的result和fault事件,以接收服务器端响应或处理可能出现的错误。 当用户触发登录操作时,...
AMFPHP是一个开源项目,它提供了AMF(Action Message Format)协议,使得FLEX与PHP(包括Java)之间的数据交换变得高效且简洁。BlazeDS和LCDS是Adobe提供的服务器端解决方案,它们支持AMF,使得FLEX与Java Server ...
1. **AMFPHP**: AMFPHP(Action Message Format for PHP)是一个开源项目,它允许Flex客户端通过HTTP与PHP服务器进行高效的数据交换。通过AMF协议,Flex可以与Java应用服务器进行类似的数据通信,例如使用BlazeDS或...