Home >Backend Development >PHP Tutorial > AS3与PHP通讯的五种方法(基于HTTP协议)

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

WBOY
WBOYOriginal
2016-06-13 13:05:30781browse

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  
            }  
        }  
     
    } 

 

?

?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn