/**
* 这是基于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与JS通信,绝对好用,HTML必须放在WEB服务器上(如:IIS、Apache)
flash actionscript3 as3通信 教程 socket与服务器通信, 多个swf之间通信.zip
使用aperture框架让AS3与C++通信,执行本地代码
提出一种基于AS5463协议的飞行管理系统仿真系统设计方法,探讨了AS5463协议在飞管总线中应用的优点及可能性。仿真系统硬件通过AS5463协议通信卡及工控机实现,软件通过模块化设计方法实现。通信仿真系统实现了各子...
使用as3写的一个能播放hls协议和rtmp协议的demo
使用c#的winform于as通信的代码例子 环境 2.0和 as3
FLASH AS3 雷达tuio+UDP协议示例
源主机与目的主机在不同AS中,当数据包传到一个AS的边界时,就需要使用一种协议将路由信息传递到另一个AS中,即EGP协议。目前使用最多的BGP为版本4,即BGP-4。 BGP(Border Gateway Protocol)是用于AS间的动态路由...
AS3[1].0与网络通信AS3[1].0与网络通信AS3[1].0与网络通信AS3[1].0与网络通信AS3[1].0与网络通信AS3[1].0与网络通信AS3[1].0与网络通信
松下串口通信协议,关于松下的通信协议规则,介绍等相关内容的。
一段as3.0写的客户端代码,用来监听服务器端和发送数据用的一个例子。可作参考。socket通信
FLASH与JS双向通信AS2 注意是AS2.0语言的通信方式,不是3.0的
3、使用Flash中的ExternalInterface.call方法和fscommand方法对JS进行调用与传送数据。 4、使用Flash中的ExternalInterface.addCallback方法创建接口,使JS能够调用AS中的函数。 包含swfobject.js与fla源文件。 (*...
针对某炼铁厂高炉渣粒化监控系统在改造过程中存在新、老设备之间通信协议不兼容、现场设备分散性强的问题,设计了一种基于多种通信协议的高炉渣粒化监控系统。该系统采用多级网络、多协议的数据集成方式:具有ModBus...
as3 与js相互通信
actionsctipt 3.0 photos 相册 基于AS3开发的
flash as3 加载图片 两种方法 代码实例
AS410与1500PLC之间进行PROFINET IO通信的具体方法和步骤
NULL 博文链接:https://as3.iteye.com/blog/938093
网上几乎找不到as3与php的通信 我就自己做了个上传了上来