【cocos2d-js网络教程篇】cocos2d-js http网络请求

前言

刚入手cocos2d-js,看到网上的JS的http网络请求,大部分都是错的。原因在于,js-tests里面的网络请求实例没有给出加载完成事件。正确的加载完成事件如下:

var xhr = cc.loader.getXMLHttpRequest();  
        xhr.open("POST", url);  
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");  
        xhr["onloadend"] = function(){  
};

Http.js完整类

var Http =  cc.Class.extend({  
    m_inst : null, //实例  
    url : "http://127.0.0.1:8080/request.php",  
  
    ctor : function(){  
    },  
  
      /*  
     * 网络请求之GET  
     * url 请求的网络地址  
     * callback 回调参数  
     * */  
    getWithUrl : function(url,callback){  
        var xhr = cc.loader.getXMLHttpRequest();  
        xhr.open("GET",url,true);  
        xhr["onloadend"] = function () {  
            if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) {  
                err = false;  
            }else{  
                err = true;  
            }  
            var response = xhr.responseText;  
            callback(err,response);  
        };  
        xhr.send();  
    },  
   
    /*  
     * 网络请求之POST  
     * url 请求的网络地址  
     * params  请求参数  ("id=1&id=2&id=3")  
     * callback 回调参数  
    ['loadstart', 'abort', 'error', 'load', 'loadend', 'timeout']  
    * */  
    sendWithUrl : function(url, params, callback){  
  
        var xhr = cc.loader.getXMLHttpRequest();  
        xhr.open("POST", url);  
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");  
        xhr["onloadend"] = function(){  
  
            var sc = -1  
            if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) {  
                sc = 0;  
            }  
  
            var json = JSON.parse(xhr.responseText)  
            var rc = parseInt(json["code"])  
  
            callback(sc, rc, json);  
  
            if(sc == 0 && (rc != 0) && RETCODE[rc + ""])  
            {  
                Alert.getInst().show(RETCODE[rc + ""])  
            }  
            else if(sc != 0 || rc != 0 ){  
                Alert.getInst().show("sc: " + sc + " rc: " + rc)  
            }  
        }  
       xhr.send(params);  
    }  
});  
  
//获取实例  
Http.inst = function() {  
    if (Http.m_inst == null) {  
        Http.m_inst = new Http();  
    }  
    return Http.m_inst;  
};

使用方法

Http.inst()->sendWithUrl("http://127.0.0.1:8080/request.php", "id=1&id=2&id=3", function(sc, rc, response){  
  cc.log("返回数据" + response);  
});

转载于:https://www.cnblogs.com/Siegel/p/6821109.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos2d-JS开发之旅 从HTML 5到原生手机游戏》 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》从简单到复杂逐渐深入介绍Cocos2d-JS,包括HTML5和手机原生游戏两个方面的内容。这些内容融汇了作者多年的工作经验和Cocos2d-JS 的亲身使用教训,有助于读者快速掌握游戏开发的方法和避开不必要的麻烦。 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》以两个游戏为线索,每一章的学习都为最终实现游戏而准备。除了基础的Cocos2d-JS使用方法,本书还会探讨如何调试发布原生手机游戏和另外一些高级话题。 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》适合所有对2D 游戏开发感兴趣的人群,尤其是计算机专业学生、Flash/JS 开发者,因为Cocos2d-JS简单易懂,读者会发现自己已有的基础能快速应用或转移到Cocos2d-JS 游戏的开发中。 目录 第一部分 准 备 第1 章 Cocos2d-JS 介绍 / 2 第2 章 跑起我们的HelloWorld / 10 第一部分总结 / 27 第二部分 做一个简单的小游戏 第3 章 Cocos2d-JS 的平面世界 / 30 第4 章 让世界来点动静 / 51 第5 章 让玩家操纵这个世界 / 72 第6 章 控制小怪按时出现——定时器 / 84 第7 章 游戏界面 / 96 第8 章 不能光说不练——小小碰碰糖 / 122 第9 章 把成果分享到网上 / 143 第二部分总结 / 158 第三部分 再做一个高大上游戏 第10 章 走向高大上的必经之路——简单的性能优化 / 160 第11 章 让主角不再死板 / 173 第12 章 动态的背景 / 188 第13 章 界面的文字有点丑 / 204 第14 章 超炫的效果——粒子系统 / 211 第15 章 尝试做一个更大的游戏——Hungry Hero(上)/ 226 第16 章 尝试做一个更大的游戏——Hungry Hero(下)/ 235 第三部分总结 / 291 第四部分 把两个游戏做成原生手机游戏 第17 章 咱们也来做APP / 294 第18 章 真是这么美好吗?更多问题来了 / 304 第四部分总结 / 320 第五部分 高 级 第19 章 订阅者模式——事件机制 / 322 第20 章 屏幕尺寸适配哪家强 / 331 第21 章 让死去的主角灰掉——渲染控制 / 342 第22 章 动态热更新 / 363 第23 章 想说的还有很多 / 374 第五部分总结 / 376

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值