AS3与PHP通信的五种方法(基于HTTP协议)
2012-02-06 12:15:44 来源:本站整理核心提示:首先,这是基于HTTP协议的,AS3与PHP通信的五种方法(基于HTTP协议),然后主要是下面的五种方法,/** * 这是基于HTTP协议的 * 一共介绍了五种方法 */ package { import flash.display.Sprite; import flash.events.*;
首先,这是基于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 .....Li灬Star
- * @contact...QQ:168527720
- */
- 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
- }
- }
- }
赞助商链接