`

As3利用AMFPHP与PHP进行通讯

阅读更多

来自:http://bbs.9ria.com/thread-65836-1-1.html

 

首先,说下具体配置,PHP版本:5.2.5,apache:2.2.11,(或者WAMP2.2),amfphp:1.9版本(附件已提供),windows xp系统。

注意:amfphp的不同的版本与php不同的版本会有冲突。具体检测方法是:在web根目录下解压amfphp后,访问该url: http://localhost/amfphp/browser/,如果没有报任何错误,那么恭喜你。如果有错误,请更换amfphp的版本。

经我的测验,上面那个配置是不会有问题的。

在具体的项目中,有时我们会使用As3纯项目,所以在As3中Amf通讯也经常用到,今天我们来讲讲在As3中的方法。(以前已经发过flex与amfphp通讯的相关文章,请查阅后台板块)
在As3端,主要就是NetConnection的使用,首先选择使用AMF3协议,这个是现在常用的,AMF0因为要兼容以前的版本,所以有些冗余。
然后使用connect方法连接后台url。
然后声明一个Responder对象,该对象在 NetConnection.call() 中使用以处理来自与特定操作成功或失败相关的服务器的返回值。
接着使用NetConnection,call 后台php端类中的方法,如本例的HelloWorld.getData,记着把是所声明的 Responder对象写到call方法的第2个参数里。

注意看Responder里两个函数参数,第一个,如果对服务器的调用成功并返回结果,则此函数被调用。例子中的onSuccess
第二个, 如果服务器返回一个错误,则此函数被调用。例子中的,onError。

好,来看看As3端:

package  {
    import flash.display.Sprite;
    import flash.events.NetStatusEvent;
    import flash.net.NetConnection;
    import flash.net.ObjectEncoding;
    import flash.net.Responder;
    /**
     * ...
     * @author 纳兰容若
     */
    public class AMFTest extends Sprite{
        private var netCon:NetConnection = new NetConnection();
        private var rsp:Responder = new Responder(onSuccess, onError);
        private var phpUrl:String = "http://localhost/amfphp/gateway.php";
        public function AMFTest() {
            netCon.objectEncoding = ObjectEncoding.AMF3;
            netCon.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
            netCon.connect(phpUrl);
            netCon.call('HelloWorld.getData', rsp);
        }
        private function onNetStatus(e:NetStatusEvent):void {
            trace("failed");
        }
        private function onSuccess(rspObj:Object):void {
            trace("ok: "+rspObj);
        }
        private function onError($rspObj:Object):void {
            trace("AMF client error.");
        }
    }
}

 

php端:

<?php
class HelloWorld {
        /**
         * @desc 向用户表示友好问候
         * @access remote
         * @returns String
         */
        public function getData() {
             return "Hello World";
        }
}
?>

php文件命名为 HelloWorld.php,放到 D:\webroot\amfphp\services中。(注意:D:\webroot是我的web根目录,这个具体设置要看你自己的。)

如果链接出现问题,则有可能是如下错误导致的:

 

Fatal error: Uncaught exception 'VerboseException' with message 'Standalone Flash player disabled. Update gateway.php to allow these connections' in C:\wamp\www\amfphp\core\amf\app\Gateway.php on line 357 VerboseException: Standalone Flash player disabled. Update gateway.php to allow these connections in C:\wamp\www\amfphp\core\amf\app\Gateway.php on line 357 Call Stack: 0.0003 374432 1. {main}() C:\wamp\www\amfphp\gateway.php:0 0.0062 874840 2. Gateway->disableStandalonePlayer() C:\wamp\www\amfphp\gateway.php:137 0.0062 875056 3. trigger_error() C:\wamp\www\amfphp\core\amf\app\Gateway.php:357 0.0062 875720 4. amfErrorHandler() C:\wamp\www\amfphp\core\amf\app\Gateway.php:357

 

此时只需要按提示,打开gateway.php文件,屏蔽掉原135、137行即可。

 

分享到:
评论

相关推荐

    AMFPHP与flex通讯

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

    开源PHP代码AMFPHP

    AMFPHP,全称为Action Message Format for PHP,是一款开源项目,旨在实现Action Message Format(AMF)协议,以便于PHP与Adobe Flash Player之间进行高效、低开销的数据交换。AMF是一种二进制序列化格式,它允许...

    AMFPHP

    AMFPHP,全称为Action Message Format for PHP,是一种在服务器端和客户端之间进行高效数据交换的PHP框架。它允许PHP应用程序使用二进制协议(AMF)与Flash、Flex、Air或其他支持AMF的客户端进行通信,从而实现快速...

    amfphp-2.1.1.rar

    AMFPHP 2.1.1 是一个强大的PHP框架,专为实现Adobe Flex与PHP之间的高效数据通信而设计。这个框架允许开发人员使用Action Message Format (AMF)协议,这是一种二进制数据格式,用于在服务器和客户端之间传输数据,...

    amfphp.zip_amfphp_flex_flex php

    AMFPHP(Action Message Format for PHP)是一种高效的数据交换协议,它允许Flex(一种用于构建富互联网应用程序的框架)与服务器端的PHP进行快速、低级别的数据通信。 描述中的"liaison entre le php et flex"法语...

    amfphp 2.1.1

    **AMFPHP 2.1.1:PHP与Flex之间的桥梁** AMFPHP是一个轻量级的PHP框架,专门设计用于提高PHP与Adobe Flex、ActionScript或其他AMF(Action Message Format)支持的客户端之间的数据交换效率。在2.1.1版本中,AMFPHP...

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

    总的来说,这个压缩包是一个全面的AMFPHP学习资源,包含理论讲解和实践示例,对于想了解或掌握PHP与Flex间数据交互的开发者来说,是一份非常宝贵的资料。通过学习AMFPHP,开发者能够更高效地构建动态的、交互性强的...

    mysql+apache+php+phpMyAdmin+amfphp 配置教程——

    ### MySQL + Apache + PHP + phpMyAdmin + AMFPHP 配置教程 #### 一、简介 本教程旨在帮助新手用户在 Windows 7 操作系统下成功安装并配置 MySQL 数据库服务器、Apache Web 服务器、PHP 脚本语言、phpMyAdmin ...

    as3使用的远程代码:amfphp

    AMFPHP是PHP的远程调用(RPC, Remote Procedure Call)工具。它可以使PHP与下述技术无缝通信: (1) Flash 和 Flex Remoting (2) JavaScript JSON 和 Ajax JSON (3) XML 和XML-RPC

    flext通信之amfphp通信实例源码

    在Flex与AMFPHP的通信中,通常使用AMF3进行数据交换。 2. **Flex客户端配置**:在Flex项目中,需要配置services-config.xml文件,设置远程服务的URL和端口,指定使用AMF通道进行通信。 3. **AMFPHP服务器端集成**...

    amfphp AMFPHP入门教程

    不想传递拆分字符串,解析串行XML了吧? 厌烦JSON了? 试试AMF吧,传送多种数据格式。

    amfphp+as3+mysql注册登录组件

    amfphp+as3+mysql注册登录组件,原来许给小伙伴的一个东东,先在拿出来分享下,虽然flash有点过时,不过登录系统永远不会过时的。

    amfphp-2.2.2.zip

    4. **兼容性**:AMFPHP 2.2.2 应该与各种版本的Flash Player和Flex SDK兼容,同时支持AMF0和AMF3两种AMF版本,以适应不同客户端的需求。 5. **性能优化**:作为成熟版本的2.2.2,AMFPHP可能已经过优化,以减少处理...

    amfPHP-2.0.alpha1.zip_AMFPHP2.0_amf2.0_amfphp_amfphp 2.0_php amf

    AMFPHP 2.0是基于PHP开发的一个框架,它主要功能是实现Flash客户端与PHP服务器之间的高效、低延迟的数据交换。AMF(Action Message Format)是一种二进制数据格式,由Adobe公司开发,用于在客户端(如Flash Player)...

    amfphp 1.9

    AMFPHP,全称为Action Message Format for PHP,是一种开源的PHP扩展,专为实现与Adobe Flash Player之间的高效、低延迟的数据通信而设计。AMFPHP允许开发者使用PHP服务器端脚本处理来自Flash客户端(如Flex或Flash...

    amfphp 2.0 +实例

    AMFPHP是PHP的远程调用(RPC, Remote Procedure Call)工具。它可以使PHP与下述技术无缝通信: (1) Flash 和 Flex Remoting (2) JavaScript JSON 和 Ajax JSON (3) XML 和XML-RPC

    AMFPHP入门教程,flex+php,flash+php

    AMFPHP(Action Message Format for PHP)是一种高效的数据交换协议,它允许Flex、Flash或ActionScript 3.0与PHP应用程序之间进行快速、低开销的通信。在本入门教程中,我们将了解如何安装和使用AMFPHP以及创建简单...

    amfphp-1.9.beta.zip_AMFPHP 1.9 beta_amfphp 1.9_amfphp1_amfphp_1.

    AMFPHP(Action Message Format for PHP)是一种PHP框架,它允许服务器端的PHP代码与客户端的Flash应用程序之间进行高效、安全的数据交换。AMFPHP 1.9 beta是该框架的一个版本,它提供了对AMF协议的支持,这是一种二...

    PHP+Flex+amfphp实现天气预报

    3. amfphp:全称为Action Message Format for PHP,是一个允许PHP和Flash/Flex之间进行高效、二进制数据交换的库。通过AMF,Flex客户端可以与PHP服务器端进行快速的数据通信,提高了性能和响应速度。在天气预报应用...

Global site tag (gtag.js) - Google Analytics