AS3网络通信

完整的网络通信大致可分以下三个部分。
一、构建URLRequest
1、属性:
(1)contentType:data属性中内容的MIME内容类型。
(2)data:要提交的数据,纯粹加载可以无此属性。
(3)method:URLRequestMethod.GET(默认)和URLRequestMethod.POST
(4)url:请求的URL地址。
如:
var request:URLRequest = new RULRequest();
request.url = "";
request.contentType = "text/xml";
request.data = xml.toXMLString;
request.method = URLRequestMethod.POST;
二、构建URLLoader
直接将URLRequest传入构造函数可以立即发送请求,也可以先构造空的URLLoader,然后在合适的时候调用load方法。
1、事件:
(1)load()一调用,就发生Event.OPEN事件。
(2)加载过程中发出ProgressEvent.PROGRESS事件,包含bytesLoaded:uint和bytesTotal:uint属性。
(3)加载完成发出Event.COMPLETE。
(4)加载完成或失败之前,会发出HTTP状态事件HTTPStatusEvent.HTTP_STATUS。
(5)加载失败,发出IOErrorEvent.IO_ERROR事件。
(6)加载内容不合安全规则,发出SecurityErrorEvent.SECURITY_ERROR。
2、dataFormat属性:
(1)URLLoaderDataFormat.TEXT(默认):文本,包括普通文本或XML。
(2)URLLoaderDataFormat.VARIABLES:值对。
(3)URLLoaderDataFormat.BINARY:二进制,即以ByteArray对象表示的数据。
三、侦听加载完成事件
根据dataFormat属性的不同,侦听函数也不同。
(1)文本:event.target.data
(2)值对:var loader:URLLoader = event.target as URLLoader;
for(var i in loader.data)
{
   trace(i+"\t:"+loader.data[i]);
}
(3)二进制:var content:ByteArray=event.target.data as ByteArray;
通常这是用来加载外部图像和动画的,如果希望舞台上有多个SWF实例,可以使用Loader对象的loadBytes()将内存中的ByteArray对象多次读取,这样速度会快一些。
loader=new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,convertHandler);
loader.loadBytes(content);

loader1、loader2、loader3……
private function convertHandler(event:Event):void{
addChild(event.target.loader as Loader);
event.target.loader.y=100*Math.random();//纵向错开加载对象
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值