欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

AS3与PHP通讯的五种方法(基于HTTP协议)

程序员文章站 2022-05-20 13:31:59
...
AS3与PHP通信的五种方法(基于HTTP协议)
    /**  
     * 这是基于HTTP协议的  
     * 一共介绍了五种方法  
     */  
     
    package    
    {  
        import flash.display.Sprite;  
        import flash.events.*;  
        import flash.net.URLLoader;  
        import flash.net.URLRequest;  
        import flash.net.URLVariables;  
        import flash.net.URLRequestMethod;  
        import flash.net.URLLoaderDataFormat;  
        import flash.net.URLRequestHeader;  
        import flash.utils.ByteArray;  
        /**  
         * ...  
         * @author .....Michael zhang
         * @contact...QQ:271291823 
         */  
          
        public class ASWithPHP_1 extends Sprite   
        {  
            private var urlLoader:URLLoader;  
            private var phpUrl:URLRequest;  
              
            public function ASWithPHP_1()   
            {  
                init();  
            }  
              
            private function init():void   
            {  
                urlLoader = new URLLoader();  
                phpUrl = new URLRequest("PHP地址");  
                  
                /**  
                 * 第一种:直接读取PHP里面的数据  
                 */  
                //----------------------------------  
                urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;  
                /**  
                 * URLLoaderDataFormat.BINARY:String---->指定以原始二进制数据形式接收下载的数据  
                 * URLLoaderDataFormat.TEXT:String----> 指定以文本形式接收已下载的数据  
                 * URLLoaderDataFormat.VARIABLES:String---->指定以 URL 编码变量形式接收下载的数据   
                 */  
                urlLoader.load(phpUrl);  
                urlLoader.addEventListener(Event.COMPLETE, completeHandler1);  
                //-----------------------------------  
                  
                /**  
                 * 第二种:读取PHP生成的xml   
                 */  
                //-------------------------------------  
                urlLoader.load(phpUrl);  
                urlLoader.addEventListener(Event.COMPLETE, completeHandler2);  
                //-------------------------------------  
                  
                /**  
                 * 第三种:通过GET方法把参数传到PHP里面  
                 */  
                //--------------------------------------  
                phpUrl.method = URLRequestMethod.GET;  
                phpUrl.data = "要传出去的数据";  
                urlLoader.load(phpUrl);  
                urlLoader.addEventListener(Event.COMPLETE, completeHandler3);  
                //--------------------------------------  
                  
                /**  
                 * 第四种:通过POST方法把参数传到PHP里面  
                 */  
                //--------------------------------------  
                phpUrl.method = URLRequestMethod.POST;  
                var vars:URLVariables = new URLVariables();  
                vars.value1 = "参数1";  
                vars.value2 = "参数2";  
                phpUrl.data = vars;  
                urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;  
                urlLoader.load(phpUrl);  
                urlLoader.addEventListener(Event.COMPLETE, completeHandler4);  
                //--------------------------------------  
                  
                /**  
                 * 第五种:二进制通信方法  
                 */  
                //----------------------------------------  
                var requestHeader:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");  
                phpUrl.method = URLRequestMethod.POST;  
                phpUrl.requestHeaders.push(requestHeader);  
                var byteArr:ByteArray = new ByteArray();  
                byteArr.writeByte(12);  
                byteArr.writeUTF("CNSloppyMan");  
                var sendData:ByteArray = new ByteArray();  
                sendData.writeInt(byteArr.length);  
                sendData.writeBytes(byteArr);  
                phpUrl.data = sendData;  
                urlLoader.dataFormat = URLLoaderDataFormat.BINARY;  
                urlLoader.load(phpUrl);  
                urlLoader.addEventListener(Event.COMPLETE, completeHandler5);  
                //-----------------------------------------  
            }  
              
            private function completeHandler1(e:Event):void   
            {  
                var vars:URLVariables = URLVariables((e.currentTarget as URLLoader).data);  
                trace("接受数据:" + vars.value); //假定value是PHP里面自定义的节点值  
            }  
              
            private function completeHandler2(e:Event):void {  
                var xml:XML = new XML((e.currentTarget as URLLoader).data);  
                trace("xml数据:" + xml.toString());  
            }  
              
            private function completeHandler3(e:Event):void {  
                trace("GET-已经传出去的数据:" + (e.currentTarget as URLLoader).data);     
            }  
              
            private function completeHandler4(e:Event):void {  
                trace("POST-已经传出去的数据:" + (e.currentTarget as URLLoader).data);    
            }  
              
            private function completeHandler5(e:Event):void {  
                var _byteArr:ByteArray = e.currentTarget.data as ByteArray;  
                trace(_byteArr.readInt()); //14  
                trace(_byteArr.readByte()); //12  
                trace(_byteArr.readUTF()); //CNSloppyMan  
            }  
        }  
     
    } 

 

?

?

AS3与PHP通讯的五种方法(基于HTTP协议)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频