白鷺快游戲如何實現(xiàn)加載文本和二進制文件,白鷺游戲開發(fā)入門白鷺快游戲如何實現(xiàn)加載文本和二進制文件需求背景:白鷺加載資源主要使用 egret.HttpRequest 類。該類封裝了在異步加載資源和通訊方面作為H5標(biāo)準(zhǔn)的 XMLHttpRequest 對象。本文講解的主要是加載靜態(tài)文件,分為兩種類型:文本和二進制數(shù)據(jù)。加載靜......
需求背景:
白鷺加載資源主要使用 egret.HttpRequest 類。該類封裝了在異步加載資源和通訊方面作為H5標(biāo)準(zhǔn)的 XMLHttpRequest 對象。
本文講解的主要是加載靜態(tài)文件,分為兩種類型:文本和二進制數(shù)據(jù)。加載靜態(tài)文件的特點是可以進行進度跟蹤。
需求實現(xiàn):
1.加載文本
HttpRequest 對象最核心的方法就是 open() 和 send() 。 open() 方法接收該請求所要訪問的URL。作為可選項還可以通過加載方式,這個參數(shù)通常用 HttpMethod 取常量,成為最常用的GET方式。
在加載完成時,通過 HttpRequest 對象的 response 屬性來獲取返回的數(shù)據(jù)。
加載文本數(shù)據(jù)的方法如下:
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,因此不需要專門設(shè)置。
需要偵聽聽的主要事件是 COMPLETE ,從這里獲取數(shù)據(jù)。
要考慮意外的情況,在IOERROR做這些情況的處理。
加載進度事件是 ProgressEvent.PROGRESS ,在加載內(nèi)容中大的資源時比較有用。
2.加載二進制
加載二進制數(shù)據(jù)的方法如下:
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( );
加載二進制數(shù)據(jù),先設(shè)置 的加載類型為 。數(shù)據(jù)加載完成后可從 屬性取到 對象,即可進行進一步讀取操作。 HttpRequestARRAYBUFFER
responseArrayBuffer
特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部