Egret HTTP网络
HTTP 请求与响应:
private createGameScene():void {
//HTTP 1.0
var request = new egret.HttpRequest();
request.responseType = egret.HttpResponseType.TEXT; //请求二进制数据则用 HttpResponse.ARRAY_BUFFER
//http 测试服务器 + Get 方式
request.open("http://httpbin.org/post",egret.HttpMethod.POST); // get 方法:request.open("http://httpbin.org/get",egret.HttpMethod.GET);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(); //如果是带有参数的请求:get - url + ? + key1=value1&key2=value2; post - send(key1=value1&key2=value2);
request.addEventListener(egret.Event.COMPLETE, this.onGetComplete, this);
request.addEventListener(egret.IOErrorEvent.IO_ERROR, this.onGetIOError, this);
request.addEventListener(egret.ProgressEvent.PROGRESS, this.onGetProgress, this);
}
private onGetComplete(event:egret.Event):void {
var request = <egret.HttpRequest>event.currentTarget;
console.log("get data : ",request.response);
var responseLabel = new egret.TextField();
responseLabel.size = 18;
responseLabel.text = "GET response: \n" + request.response.substring(0, 50) + "...";
this.addChild(responseLabel);
responseLabel.x = 50;
responseLabel.y = 70;
}
private onGetIOError(event:egret.IOErrorEvent):void {
console.log("get error : " + event);
}
private onGetProgress(event:egret.ProgressEvent):void {
console.log("get progress : " + Math.floor(100*event.bytesLoaded/event.bytesTotal) + "%");
}
跨域加载位图:
在本地搭建了一个 IIS 站点用来当资源站。
private createGameScene():void {
var imgLoader:egret.ImageLoader = new egret.ImageLoader();
imgLoader.once(egret.Event.COMPLETE, this.imgLoadHandler, this);
imgLoader.load("http://127.0.0.1/hero1.png");
}
private imgLoadHandler(evt:egret.Event):void
{
var Loader:egret.ImageLoader = evt.currentTarget;
var bmData:egret.BitmapData = Loader.data; //应该默认是以二进制数据来传输
var bMap:egret.Bitmap = new egret.Bitmap(bmData);
this.addChild(bMap);
}
但是在 WebGL 运行 createTexture 时报错,egret 教程上也说暂时不支持 WebGL?
跨域加载文件:
private createGameScene():void {
//代码与普通请求完全相同
var url = "http://127.0.0.1/test.txt"; //IIS的MIME不支持教程的 json 格式,改成 txt 后浏览器才可访问,但js仍不可访问
var request:egret.HttpRequest = new egret.HttpRequest();
request.once(egret.Event.COMPLETE, this.resLoadHandler, this);
request.once(egret.IOErrorEvent.IO_ERROR, this.resLoadHandler, this);
request.once(egret.ProgressEvent.PROGRESS, this.progressLoadHandler, this);
request.open(url, egret.HttpMethod.GET);
request.send(); //js 的跨域问题..
}
private resLoadHandler(evt:egret.Event):void{
switch(evt.type){
case egret.Event.COMPLETE:
var request:egret.HttpRequest = evt.currentTarget;
console.log("resLoadHandler: ", request.response);
break;
case egret.IOErrorEvent.IO_ERROR:
console.log("resLoadHandler io error.");
break;
}
}
private progressLoadHandler( evt:egret.ProgressEvent):void{
console.log("progress:", + Math.floor(100 * evt.bytesLoaded / evt.bytesTotal) + "%");
}
这里没有指定 ResponseType,等搞定了跨域问题要回来验证一下。
Egret HTTP网络的更多相关文章
- Egret引擎随学随机
1.纹理集实际上就是将一些零碎的小图放到一张大图当中.游戏中也经常使用到纹理集.使用纹理集的好处很多,我们通过将大量的图片拼合为一张图片从而减少网络请求,原先加载数次的图片资源现在加载一次即可.同时, ...
- 深入了解使用egret.WebSocket
概念 本教程不讲解TCP/IP协议,Socket属于哪层,消息包体怎么设计等,主讲 egret.WebSocket 使用示例 与 protobuf 使用示例. 在使用egret.WebSocket之前 ...
- egret随笔-egret浅入浅出
•不知道有多人跟笔者一样,喜欢学各种技术,但是都不精,但也有一两项算是精的. 自从踏上了egret游戏开发的道路,就不得不学习各种技术了,因为,要精通egret,首先必须要会TypeScript,其次 ...
- Egret入门(一)--简介
关于Egret 构建2D游戏,开源. TS + JS 完成打包后可以转换成HTML5的游戏(跨平台) Egret特点 1. 优秀的设计思想 2. 高效的渲染模块 3. 完善的配套工具 4. 灵活的工作 ...
- egret 篇——关于ios环境下微信浏览器的音频自动播放问题
前段时间公司突然想用egret(白鹭引擎)做一个金币游戏,大半个月边看文档边写吭哧吭哧也总算是弄完了.期间遇到一个问题,那就是ios环境下微信浏览器的音频自动播放问题. 个人感觉吧,egret自己封装 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Virtual Box配置CentOS7网络(图文教程)
之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...
随机推荐
- Oracle 学习笔记 11 -- 视图 (VIEW)
本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...
- linux的文件系统及节点表
linux的文件系统及节点表 一 linux的文件系统1 我们都知道当我们安装linux时会首先给系统分区,然后我们会把分区格式化成EXT3格式的文件系统.那么在linux系统中还有没有其他的文件系 ...
- RHCA-RH442-Linux系统性能调优 (学习)
RHCA-RH442-Linux系统性能调优
- Qt的皮肤设计(Style Sheet)
Qt的皮肤设计,也可以说是对Qt应用程序的界面美化,Qt使用了一种类CSS的样式规则QSS. 一.Style Sheet的应用 1.直接在程序代码中设置样式,利用setStyleSheet()方法 ...
- Java——(四)Collection之Set集合TreeSet类
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- TreeSet类 TreeSet是SortedSet接口的实现类,正如SortedSet名字所暗 ...
- Java NIO 学习笔记
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3344148.html ...
- 学习微信小程序之css15解决父盒子高度塌陷
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Lua学习----面向对象编程
1.类 再Lua中可以使用表和函数实现面向对象,将函数和相关的数据放置放置于同一个表中就形成了对象.例如: Measure = {width = 0, height = 0} function Mea ...
- 10.7 noip模拟试题
楼[问题背景]zhx 为他的妹子造了一幢摩天楼.[问题描述]zhx 有一幢摩天楼. 摩天楼上面有 M 个观光电梯,每个观光电梯被两个整数
- Java-Android 之单选按钮的运用
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...