日期:2014-05-17  浏览次数:20481 次

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;  
                ur