• AS3利用AMFPHP与PHP进行通讯


    首先,说下具体配置,PHP版本:5.2.5,apache:2.2.11,amfphp:1.9版本,windows xp系统。

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

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

    方法步骤:
    1、声明一个NetConnection,选择使用AMF3协议,现在一般都用AMF3
    2、声明一个Responder对象,该对象在 NetConnection.call() 中使用以处理来自与特定操作成功或失败相关的服务器的返回值。
    3、用NetConnection.call()读取PHP里面的方法,NetConnection.call(command:String, responder:Responder)。
    Responder里两个函数参数,第一个,如果对服务器的调用成功并返回结果,则此函数被调用。例子中的onSuccess。

    第二个, 如果服务器返回一个错误,则此函数被调用。例子中的,onError。

     1 package  
     2 {
     3     import flash.display.Sprite;
     4     import flash.events.*;
     5     import flash.net.NetConnection;
     6     import flash.net.ObjectEncoding;
     7     import flash.net.Responder;
     8     
     9     /**
    10      * ...
    11      * 
    12      * 
    13      */
    14     public class ASWithPHP_2 extends Sprite 
    15     {
    16         private var connection:NetConnection = new NetConnection();
    17         private var rsp:Responder = new Responder(onSuccess, onError);
    18         private var phpUrl:String = "PHP地址"; //注意是字符串,而不是URLRequest
    19         
    20         public function ASWithPHP_2() 
    21         {
    22             init();
    23         }
    24         
    25         private function init():void 
    26         {
    27             connection.objectEncoding = ObjectEncoding.AMF3; //选择AMF3协议
    28             connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
    29             connection.connect(phpUrl); //连接后台PHP地址
    30             connection.call("PHP里面的方法", rsp);
    31         }
    32         
    33         private function onNetStatus(e:NetStatusEvent):void 
    34         {
    35             switch(e.info.code) {
    36                 case "NetConnection.Connect.Success":
    37                 trace("连接成功");
    38                 break;
    39                 
    40                 case "NetStream.Play.StreamNotFound":
    41                 trace("没有找到:" + phpUrl);
    42                 break;
    43             }
    44         }
    45         
    46         private function onSuccess(obj:Object):void {
    47             trace("OK:" + obj);
    48         }
    49         
    50         private function onError(_obj:Object):void {
    51             trace("错误");    
    52         }
    53     }
    54 
    55 }
  • 相关阅读:
    MyEclipse错误积累--持续更新
    Git错误积累-持续更新
    MySQL错误积累-持续更新
    评价一个人,就是要看他把时间都花在哪了
    收集的yum命令博文
    Github 常用命令
    python库收藏
    [转载]Scikit Learn: 在python中机器学习
    Windows下python安装Matplotlib、Numpy和Scipy模块
    [LeetCode] #45 Jump Game II
  • 原文地址:https://www.cnblogs.com/bulolo/p/2776313.html
Copyright © 2020-2023  润新知