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 ...
随机推荐
- js判断是否为手机浏览器
JS判断手机浏览器 判断原理: JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根 ...
- java如何遍历hashMap
通过Map的entrySet方法.将返回一个set集合.然后遍历这个set集合: package com.howlaa.day04; import java.util.HashMap; import ...
- mysql 建立表里某的个字段根据另一字段进行自增长
在设计一些数据表时,我们经常遇到这样一种情况:需要表中的一个字段根据另一字段进行自增长,比如,在数据表中存储玩家的武器信息时,需要存储玩家的武器对应的bagid,这就是一个根据玩家自己的id(玩家id ...
- win8系统添加开机自启动软件的方法(转)
win8系统添加开机自启动软件的方法,把需要设置开机自启动的软件的快捷方式复制到下面任意路径就ok了.开机自启动路径如下:C:\ProgramData\Microsoft\Windows\Start ...
- 手把手教学:详解HTML5移动开发框架PhoneJS
摘要:HTML/JavaScript的优势自不必说,但却也并非完美,相比之下,原生App占内存更少.响应更快.本文详解了HTML5移动开发框架PhoneJS的使用全过程,通过它,能够让Web应用在移动 ...
- qt 状态栏
有段时间没有写过博客了.假期去上海旅游,所以一直没有能够上网.现在又来到这里,开始新的篇章吧! 今天的内容主要还是继续完善前面的那个程序.我们要为我们的程序加上一个状态栏. 状态栏位于主窗口的 ...
- 再回首,Java温故知新(九):Java基础之流程控制语句
流程控制语句分为条件语句.循环语句和中断语句. 中断语句包括break和continue,两者的区别在于break会跳出整个循环,而continue则是跳出此次循环,之后还会继续下一次循环. 条件语句 ...
- JavaScript 使用
HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> 和 <head> 部分 ...
- opencart 模块开发详解
opencart 模块开发详解 由 xiekanxiyang » 2013年 7月 11日 10:17 pm opencart 将页面分成若干模块, 每个模块可以有多个实例(可能这样说不是很恰当) 每 ...
- Android布局管理器(表格布局)
表格布局有TableLayout所代表,TableLayout继承了LinearLayout,因此他的本质依然是LinearLayout. 表格布局采用行.列的形式来进行管理,在使用的时候不需要声明多 ...