WEB开发网
开发学院图形图像Flash AS3与PHP通信的五种方法(基于HTTP协议) 阅读

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

 2012-02-06 12:15:44 来源:本站整理   
核心提示:首先,这是基于HTTP协议的,AS3与PHP通信的五种方法(基于HTTP协议),然后主要是下面的五种方法,/** * 这是基于HTTP协议的 * 一共介绍了五种方法 */ package { import flash.display.Sprite; import flash.events.*;

首先,这是基于HTTP协议的,然后主要是下面的五种方法。

  1. /**  
  2.  * 这是基于HTTP协议的  
  3.  * 一共介绍了五种方法  
  4.  */  
  5.  
  6. package   
  7. {  
  8.   import flash.display.Sprite;  
  9.   import flash.events.*;  
  10.   import flash.net.URLLoader;  
  11.   import flash.net.URLRequest;  
  12.   import flash.net.URLVariables;  
  13.   import flash.net.URLRequestMethod;  
  14.   import flash.net.URLLoaderDataFormat;  
  15.   import flash.net.URLRequestHeader;  
  16.   import flash.utils.ByteArray;  
  17.   /**  
  18.    * ...  
  19.    * @author .....Li灬Star  
  20.    * @contact...QQ:168527720  
  21.    */  
  22.     
  23.   public class ASWithPHP_1 extends Sprite   
  24.   {  
  25.     private var urlLoader:URLLoader;  
  26.     private var phpUrl:URLRequest;  
  27.       
  28.     public function ASWithPHP_1()   
  29.     {  
  30.       init();  
  31.     }  
  32.       
  33.     private function init():void   
  34.     {  
  35.       urlLoader = new URLLoader();  
  36.       phpUrl = new URLRequest("PHP地址");  
  37.         
  38.       /**  
  39.        * 第一种:直接读取PHP里面的数据  
  40.        */  
  41.       //----------------------------------------------------------------------  
  42.       urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;  
  43.       /**  
  44.        * URLLoaderDataFormat.BINARY:String---->指定以原始二进制数据形式接收下载的数据  
  45.        * URLLoaderDataFormat.TEXT:String----> 指定以文本形式接收已下载的数据  
  46.        * URLLoaderDataFormat.VARIABLES:String---->指定以 URL 编码变量形式接收下载的数据   
  47.        */  
  48.       urlLoader.load(phpUrl);  
  49.       urlLoader.addEventListener(Event.COMPLETE, completeHandler1);  
  50.       //-----------------------------------------------------------------------  
  51.         
  52.       /**  
  53.        * 第二种:读取PHP生成的xml   
  54.        */  
  55.       //-------------------------------------------------------------------------  
  56.       urlLoader.load(phpUrl);  
  57.       urlLoader.addEventListener(Event.COMPLETE, completeHandler2);  
  58.       //-------------------------------------------------------------------------  
  59.         
  60.       /**  
  61.        * 第三种:通过GET方法把参数传到PHP里面  
  62.        */  
  63.       //--------------------------------------------------------------------------  
  64.       phpUrl.method = URLRequestMethod.GET;  
  65.       phpUrl.data = "要传出去的数据";  
  66.       urlLoader.load(phpUrl);  
  67.       urlLoader.addEventListener(Event.COMPLETE, completeHandler3);  
  68.       //--------------------------------------------------------------------------  
  69.         
  70.       /**  
  71.        * 第四种:通过POST方法把参数传到PHP里面  
  72.        */  
  73.       //--------------------------------------------------------------------------  
  74.       phpUrl.method = URLRequestMethod.POST;  
  75.       var vars:URLVariables = new URLVariables();  
  76.       vars.value1 = "参数1";  
  77.       vars.value2 = "参数2";  
  78.       phpUrl.data = vars;  
  79.       urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;  
  80.       urlLoader.load(phpUrl);  
  81.       urlLoader.addEventListener(Event.COMPLETE, completeHandler4);  
  82.       //--------------------------------------------------------------------------  
  83.         
  84.       /**  
  85.        * 第五种:二进制通信方法  
  86.        */  
  87.       //----------------------------------------------------------------------------  
  88.       var requestHeader:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");  
  89.       phpUrl.method = URLRequestMethod.POST;  
  90.       phpUrl.requestHeaders.push(requestHeader);  
  91.       var byteArr:ByteArray = new ByteArray();  
  92.       byteArr.writeByte(12);  
  93.       byteArr.writeUTF("CNSloppyMan");  
  94.       var sendData:ByteArray = new ByteArray();  
  95.       sendData.writeInt(byteArr.length);  
  96.       sendData.writeBytes(byteArr);  
  97.       phpUrl.data = sendData;  
  98.       urlLoader.dataFormat = URLLoaderDataFormat.BINARY;  
  99.       urlLoader.load(phpUrl);  
  100.       urlLoader.addEventListener(Event.COMPLETE, completeHandler5);  
  101.       //-----------------------------------------------------------------------------  
  102.     }  
  103.       
  104.     private function completeHandler1(e:Event):void   
  105.     {  
  106.       var vars:URLVariables = URLVariables((e.currentTarget as URLLoader).data);  
  107.       trace("接受数据:" + vars.value); //假定value是PHP里面自定义的节点值  
  108.     }  
  109.       
  110.     private function completeHandler2(e:Event):void {  
  111.       var xml:XML = new XML((e.currentTarget as URLLoader).data);  
  112.       trace("xml数据:" + xml.toString());  
  113.     }  
  114.       
  115.     private function completeHandler3(e:Event):void {  
  116.       trace("GET-已经传出去的数据:" + (e.currentTarget as URLLoader).data);    
  117.     }  
  118.       
  119.     private function completeHandler4(e:Event):void {  
  120.       trace("POST-已经传出去的数据:" + (e.currentTarget as URLLoader).data);   
  121.     }  
  122.       
  123.     private function completeHandler5(e:Event):void {  
  124.       var _byteArr:ByteArray = e.currentTarget.data as ByteArray;  
  125.       trace(_byteArr.readInt()); //14  
  126.       trace(_byteArr.readByte()); //12  
  127.       trace(_byteArr.readUTF()); //CNSloppyMan  
  128.     }  
  129.   }  
  130.  

Tags:AS PHP 通信

编辑录入:coldstar [复制链接] [打 印]
赞助商链接