`

Flex +PHP ( AMFPHP)+ RemoteObject

    博客分类:
  • Flex
阅读更多

用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窗口。

分享到:
评论

相关推荐

    AMFPHP与flex通讯

    AMFPHP(Action Message Format for PHP)是一种PHP扩展,它允许服务器端的PHP代码与客户端的Flex应用程序进行高效、低延迟的数据交换。Flex是Adobe开发的一款用于构建富互联网应用程序(RIA)的框架,它主要使用...

    flex amfphp1.9

    Flex AMFPHP 1.9 是一款用于连接Adobe Flex与PHP服务器端的开源框架,它提供了高效的二进制数据交换格式AMF(Action Message Format),从而实现Flash客户端与PHP服务端之间的快速通信。AMF是一种低级的数据表示格式...

    flext通信之amfphp通信实例源码

    4. **服务定义**:在Flex客户端,使用RemoteObject组件来定义与AMFPHP服务的连接。RemoteObject的endpoint属性应指向AMFPHP服务的URL,服务方法映射到AMFPHP服务器上的对应函数。 5. **数据交换**:在Flex中,可以...

    amfphp-2.1.1.rar

    此外,你可能还需要在Flex客户端配置远程对象(RemoteObject),指定AMFPHP服务的URL,以实现客户端与服务器之间的通信。 总的来说,AMFPHP 2.1.1是一个强大的工具,它简化了Flex和PHP之间的数据交互,提升了应用的...

    Flex 3 基础教程(10)

    使用 RemoteObject 与 AMFPHP 进行通信是 Flex 应用程序与 PHP 后端进行交互的另一种方式。示例 1:简单的数据通信(amfphpHello2Demo),展示了如何使用 RemoteObject 与 AMFPHP 实现简单的数据交互。示例 2:复杂...

    myamfphp 实现php与flex交互

    3. **客户端调用**:在Flex应用程序中,可以使用Flash Player提供的`NetConnection`和`RemoteObject`类来连接到myAMFPHP服务器并调用服务。这使得前端可以直接操作后端数据,实现数据的即时更新。 4. **数据类型...

    Flex用C#和J2EE连接数据库

    2. **AMFPHP**:AMFPHP是一个开源的服务器端组件,它实现了Adobe的Action Message Format(AMF),允许Flex应用与PHP服务器进行高效的数据交换。在C#环境中,可以利用AMFPHP的C#版本(如Red5Pro)来实现Flex与C#的...

    AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程

    在Flex客户端中,首先通过RemoteObject类初始化远程对象login_remoteObj,并设置其属性。初始化后,客户端监听doLogin操作的result和fault事件,以接收服务器端响应或处理可能出现的错误。 当用户触发登录操作时,...

    FLEX从入门到精通java的结合

    AMFPHP是一个开源项目,它提供了AMF(Action Message Format)协议,使得FLEX与PHP(包括Java)之间的数据交换变得高效且简洁。BlazeDS和LCDS是Adobe提供的服务器端解决方案,它们支持AMF,使得FLEX与Java Server ...

    整合flex 和java

    1. **AMFPHP**: AMFPHP(Action Message Format for PHP)是一个开源项目,它允许Flex客户端通过HTTP与PHP服务器进行高效的数据交换。通过AMF协议,Flex可以与Java应用服务器进行类似的数据通信,例如使用BlazeDS或...

Global site tag (gtag.js) - Google Analytics