`

Flex 连接 amfphp

阅读更多
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方法传递了一个字符串
还可以传递对象。
分享到:
评论

相关推荐

    AMFPHP与flex通讯

    使用`RemoteObject`组件,我们可以设置AMF通道并连接到AMFPHP服务器,以便发送和接收数据。 3. **ActionScript编程**:在Flex中,我们需要编写ActionScript代码来处理用户交互,例如监听按钮点击事件,调用服务器上...

    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.zip_amfphp_flex_flex php

    当Flex客户端需要与服务器通信时,它可以通过AMFPHP与PHP服务端建立连接,进行数据交换。这种通信方式使得开发人员可以利用Flex的强大可视化工具创建用户界面,同时利用PHP的服务器端处理能力。 在实际应用中,...

    AMFPHP入门,里面包含php和Flex交互的小demo

    在Flex应用中,这些组件通常用于处理与AMFPHP的连接和数据交换。 2. `amfphp 1.9.zip`:这是AMFPHP的源代码或安装包,版本号为1.9。用户可以解压后安装在自己的PHP环境中,然后按照文档的指导设置和使用AMFPHP。 总...

    amfphp 2.1.1

    3. **配置Flex**:在Flex项目中设置AMF端点,连接到AMFPHP服务器,并调用暴露的服务。 4. **数据交换**:通过AMFPHP,Flex客户端可以发送请求并接收响应,实现数据的双向传递。 **总结** AMFPHP 2.1.1是PHP开发者...

    AMFPHP

    它允许PHP应用程序使用二进制协议(AMF)与Flash、Flex、Air或其他支持AMF的客户端进行通信,从而实现快速、低级别的数据传输。AMFPHP的核心目标是提供一种比传统HTTP或SOAP协议更快、更轻量级的方式来实现Web服务。...

    Flex用C#和J2EE连接数据库

    本篇将详细讲解如何使用Flex与C#和J2EE平台进行数据库连接。 一、Flex与C#连接数据库 1. **数据访问层(DAL)**:在C#环境中,通常使用ADO.NET作为数据访问层,它提供了对SQL Server、Oracle等数据库的直接访问。...

    Flex3连接access数据库实例源码.rar

    在这个实例中,Flex可能通过AMFPHP或 BlazeDS这样的服务器端技术来与Access数据库建立连接。 2. **AMF(Action Message Format)**: AMF是一种二进制数据格式,用于在Flex客户端和服务器之间高效地传输数据。...

    amfphp-example

    "amfphp-example"中的示例展示了如何实现PHP与Flex或Flash应用程序的无缝连接,提供了清晰的命名规范,使得开发者能够快速理解和使用这些接口。 **标签:“amfphp flex flash”** 这三个标签分别对应了AMFPHP框架...

    sql flex (最简单的连接方式)

    2. 数据访问组件:在Flex中,我们可以使用数据访问组件如ADO.NET,Flash Remoting,AMFPHP,BlazeDS等来与后端数据库进行通信。对于SQL连接,BlazeDS是最常用的一种,因为它支持使用HTTP协议传输数据,这使得跨域...

    myamfphp 实现php与flex交互

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

    FLEX个人网站管理系统源码v3.1source.rar

    综上所述,这个源码包提供了一个基于Flex技术的个人网站管理系统,通过MXML和AS3实现了富交互的前端,结合Cairngorm MVC框架优化了代码结构,利用AMFPHP实现了高效的数据通信,是学习和研究FLEX应用开发的好素材。

    flex增删改查例子(完整版)

    3. **ActionScript数据库操作**:在Flex中,通常使用ADO.NET或AMFPHP等技术与服务器端的数据库进行通信。ActionScript代码负责发送请求,处理返回的数据,并更新用户界面。 4. **服务调用**:在Flex应用中,数据...

    flex lcds java配置

    此外,还有其他数据服务选项,如AMFPHP,但LCDS提供了一些额外的便利和特性,使得与Flex的集成更为顺畅。 Java,作为全球广泛使用的编程语言,是开发LCDS后端服务的基础。开发者可以通过Java编写业务逻辑和服务,...

    整合flex 和java

    5. **Spring BlazeDS Integration**: Spring框架提供了与BlazeDS集成的模块,使得Java开发者能够轻松地将Flex前端与Spring应用后端连接起来,利用Spring的依赖注入和管理特性。 6. **数据模型和状态管理**: 在整合...

    Advanced Flex 3 2008

    介绍了一种开源的远程库AMFPHP,它可以用于连接PHP和Flex。本章还展示了Flex与一些流行的PHP工具、框架和库的合作。 - **第9章:与JavaScript和HTML的对话:网页集成** 解释了Flex如何与客户端技术集成,帮助...

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

    AMFPHP支持序列化和反序列化多种复杂类型数据,包括对象、数组以及资源数据连接资源(例如数据库查询结果)。由于这种支持,开发者可以方便地在服务器端执行数据库查询,然后通过AMFPHP将结果传回客户端。此外,...

    php+flex...........

    通过PHP的AMFPHP库或 Zend AMF,PHP能够接收并处理来自Flex的AMF请求,返回处理结果。 4. 数据交换格式: 在PHP与Flex之间传输数据时,常见的格式有XML、JSON和AMF。XML和JSON是文本格式,易于理解和调试,而AMF是...

Global site tag (gtag.js) - Google Analytics