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,等搞定了跨域问题要回来验证一下。

时间: 10-03

Egret HTTP网络的相关文章

Egret网络请求之超时或异常的处理

 /**          * 发送网络请求          * @param reqUrl http://www.aaa.com          * @param postData uid=0&name="ch"&money=999          * @param callback 回调函数          * var loader:egret.URLLoader = <egret.URLLoader> event.target;        

Egret笔记之网络请求与数据处理

内容参考Egret官方文档: http://docs.egret-labs.org/post/manual/net/createconnect.html 但是有些地方官方并没有写的很清楚,在此记录,供大家参考学习: 1-GET请求,解析返回的数据: 代码里面提供了两种把数据解析成Json格式的方法.(注意URLLoaderDataFormat为TEXT) private getDataFromServer(){     var url:string ="http://httpbin.org/ge

简单介绍了解白鹭引擎Egret

(一)关于白鹭引擎Egret Egret引擎是一个开源免费的游戏框架,用于构建二维游戏.演示程序和其他图形界面交互应用等.Egret使用TypeScript脚本语言开发.当游戏完成最终的打包后,可以将程序转换为HTML5游戏.实现跨平台特性. Egret不仅仅是一个基于HTML5技术的游戏引擎,我们的产品线中除了Egret引擎还提供了很多辅助游戏开发的工具.准确的来说,Egret是一套游戏开发的解决方案.你可以使用Egret引擎来帮助你开发HTML5游戏,并运行在手机和PC端的浏览器中,同时也你

Egret 学习笔记 h5牛牛源码 h5牛牛源码搭建教程

1.纹理集实际上就是将一些零碎的小图放到一张大图当中.游戏中也经常使用到纹理集.使用纹理集的好处很多,我们通过将大量的图片拼合为一张图片从而减少网络请求,原先加载数次的图片资源现在加载一次即可.同时,在引擎渲染的时候也会减少IO读取,从而提高h5牛牛源码性能.h5牛牛源码Q 2171793408     http://wowotouba.com/h52.只要发生事件,Flash就会调度事件对象.如果事件目标不在显示列表中,则Flash Player或AIR将事件对象直接调度到事件目标.例如,Fl

用Egret制作功能简单的打地鼠类游戏《冰桶挑战》

今天教大家使用Egret制作一款功能简单的游戏--<冰桶挑战>,这是一款大家熟悉的打地鼠类游戏,点击屏幕使用冰桶浇灭地洞里钻出来的明星,结算得到分数.游戏页面布局使用EUI封装了大量的常用UI组件,满足大部分的交互界面需求,开发者仅用1天时间即可独立完成这款小游戏的开发. 游戏效果图如下: 游戏比较简单,分为以下几个场景: · 开始场景 · 游戏场景 · 结束场景 · 游戏类 开始场景 这里使用Eui来搭建UI,舞台大小选择640 x 960,填充模式选择fixedWidth: 新建Eui组件

iOS开发——网络编程OC篇&amp;Socket编程

Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议   对应于应用层 tcp协议    对应于传输层 ip协议     对应于网络层 三者本质上没有可比性.  何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议,主要

网络攻防第一次作业(201421450010)

姓名:陈书扬 学号:201421450010 指导教师:高见 1.虚拟机安装与调试 安装windows和linux(kali)两个虚拟机,均采用NAT网络模式,查看主机与两个虚拟机器的IP地址,并确保其连通性.同时为两个虚拟机做一个快照 windows虚拟机 Linux虚拟机 本地主机win10 两台主机都ping通 2.Windows基本命令 dir显示目录   cd 进入目录 Arp -a -d -s arp缓存 net share 查看计算机IPC$共享资源 netstat -ano网络链

10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包

- 10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包 - 扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html  - tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html  # 10.6 监控io性能 ![mark](http://oqxf7c508.bkt.clouddn.com/b

Kali linux网络配置

Kali linux 安装完成后,需要对其网络进行配置.使用DHCP服务是配置网卡最简单的方法之一,但渗透测试时通常不会这样做,因为系统会被记录在DHCP服务器的数据库中. 1  动态DHCP方式 配置文件地址: /etc/network/interface # 启动系统激活设备 # Loop回环地址 auto lo iface lo inet loopback # 启动系统激活设备 # 网卡eth0设置为DHCP类型 auto eth0 iface eth0 inet dhcp 2  静态St