白鹭快游戏如何实现加载文本和二进制文件,白鹭游戏开发入门白鹭快游戏如何实现加载文本和二进制文件需求背景:白鹭加载资源主要使用 egret.HttpRequest 类。该类封装了在异步加载资源和通讯方面作为H5标准的 XMLHttpRequest 对象。本文讲解的主要是加载静态文件,分为两种类型:文本和二进制数据。加载静......
需求背景:
白鹭加载资源主要使用 egret.HttpRequest 类。该类封装了在异步加载资源和通讯方面作为H5标准的 XMLHttpRequest 对象。
本文讲解的主要是加载静态文件,分为两种类型:文本和二进制数据。加载静态文件的特点是可以进行进度跟踪。
需求实现:
1.加载文本
HttpRequest 对象最核心的方法就是 open() 和 send() 。 open() 方法接收该请求所要访问的URL。作为可选项还可以通过加载方式,这个参数通常用 HttpMethod 取常量,成为最常用的GET方式。
在加载完成时,通过 HttpRequest 对象的 response 属性来获取返回的数据。
加载文本数据的方法如下:
var url = resource/config/description.json;font/font
var request:egret.HttpRequest = new egret.HttpRequest();font/font
var respHandler = function( evt:egret.Event ):void{font/font
switch ( evt.type ){font/font
case egret.Event.COMPLETE:font/font
var request:egret.HttpRequest = evt.currentTarget;font/font
console.log( respHandler:n, request.response );font/font
break;font/font
case egret.IOErrorEvent.IOERROR:font/font
console.log( respHandler io error );font/font
break;font/font
}font/font
}font/font
var progressHandler = function( evt:egret.ProgressEvent ):void{font/font
console.log( progress:, evt.bytesLoaded, evt.bytesTotal );font/font
}font/font
request.once( egret.Event.COMPLETE, respHandler, null);font/font
request.once( egret.IOErrorEvent.IOERROR, respHandler, null);font/font
request.once( egret.ProgressEvent.PROGRESS, progressHandler, null);font/font
request.open( url, egret.HttpMethod.GET ); font/font
request.send( );
HttpRequest 默认的加载类型是TEXT,因此不需要专门设置。
需要侦听听的主要事件是 COMPLETE ,从这里获取数据。
要考虑意外的情况,在IOERROR做这些情况的处理。
加载进度事件是 ProgressEvent.PROGRESS ,在加载内容中大的资源时比较有用。
2.加载二进制
加载二进制数据的方法如下:
var url = resource/assets/egreticon.png;font/font
var request:egret.HttpRequest = new egret.HttpRequest();font/font
request.responseType = egret.HttpResponseType.ARRAYBUFFER;font/font
var respHandler = function( evt:egret.Event ):void {font/font
switch ( evt.type ){font/font
case egret.Event.COMPLETE:font/font
var request:egret.HttpRequest = evt.currentTarget;font/font
var ab:ArrayBuffer = request.response;font/font
console.log( respHandler:n, ab.byteLength );font/font
break;font/font
case egret.IOErrorEvent.IOERROR:font/font
console.log( respHandler io error );font/font
break;font/font
}font/font
}font/font
request.once( egret.Event.COMPLETE, respHandler, null);font/font
request.once( egret.IOErrorEvent.IOERROR, respHandler, null);font/font
request.open( url, egret.HttpMethod.GET );font/font
request.send( );
加载二进制数据,先设置 的加载类型为 。数据加载完成后可从 属性取到 对象,即可进行进一步读取操作。 HttpRequestARRAYBUFFER
responseArrayBuffer
特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。
二维码加载中...
使用微信扫一扫登录
使用账号密码登录
平台顾问
微信扫一扫
马上联系在线顾问
小程序
ESG跨境小程序
手机入驻更便捷
返回顶部