cocos2d-js 开发常用方法

1、获取URL中的请求参数的值----此方法接收参数名

function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return decodeURIComponent(r[2]);
    return null;
};

2、远程图片加载

loadImgFromUrl: function (target, imgUrl, p, tag) {
        if(!imgUrl)return;
        var self = target;
        var loadCb = function(err, img){
            cc.textureCache.addImage(imgUrl);
            var texture2d = new cc.Texture2D();
            texture2d.initWithElement(img);
            texture2d.handleLoadedTexture();
            var sp = new cc.Sprite();
            sp.initWithTexture(texture2d);
            self.addChild(sp);
            sp.x = p.x;
            sp.y = p.y;
            sp.tag = tag;
        };
        cc.loader.loadImg(imgUrl, {isCrossOrigin : false }, loadCb);
    }

3、XMLHttpRequest

var sendRequest = function(url, params, isPost, callback, errorcallback){
    if(url == null || url == '')
        return;
            
    var xhr = cc.loader.getXMLHttpRequest();
    if(isPost){
        xhr.open("POST",url);
    }else{
        xhr.open("GET",url);
    }
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.onreadystatechange = function () {
        if(xhr.readyState == 4 && xhr.status == 200){
            var response = xhr.responseText;
            if(callback)
                callback(response);
        }else if(xhr.readyState == 4 && xhr.status != 200){
            var response = xhr.responseText;
            if(errorcallback)
                errorcallback(response);
        }
    };
    
    if(params == null || params == ""){
        xhr.send();
    }else{
        xhr.send(params);
    }
};

var callback = function (response) {
        var jsonData = JSON.parse(response);
        var data = jsonData["users"];
        if(data){
            alert(data["name"]);
            // todo something
        }
    };

4、网页跳转 

window.location.href = "http://www.baidu.com"

5、关于进入游戏时黑屏时间较长的处理方法

1)

<body style="padding:0; margin: 0; background: #000;">

删除index.html中<body>标签的样式background: #000;

2)按照自己需要添加编译模块 修改project.json如

"modules" : ["core", "actions","shape-nodes", "labels","menus","transitions","physics","chipmunk","gui"],

6、javaScript打开远程JS文件

var openScript = function (url) {
    var script = document.createElement("script");
    script.async = false;
    script.src = url;
    document.body.appendChild(script);
};

7、字体的描边、加粗效果可以使用自带字体完成,无需添加字体文件

var def = new cc.FontDefinition(); // 声明文字定义  
def.fontName = "Verdana"; // 字体  
def.fontSize = 36; // 字号大小  
def.textAlign = cc.TEXT_ALIGNMENT_CENTER; // 文字对齐  
def.fillStyle = cc.color(255, 255, 255); // 字体(内部)颜色  
  
def.strokeEnabled = true; // 开启文字描边效果  
def.strokeStyle = cc.color(0, 0, 0); // 描边的颜色  
def.lineWidth = 3; // 字体的宽度  
  
def.defadowEnabled = true; // 开启阴影效果  
def.shadowOffsetX = 12; // 阴影X轴效果  
def.shadowOffsetY = 12;  
  
var label = new cc.LabelTTF("文字显示内容", def);  
label.setPosition(cc.winSize.width / 2, cc.winSize.height / 2);  
this.addChild(label); 

8、将层隐藏后该层不会再被渲染,对于不会经常变化又需要经常显示和隐藏的层,可以不必每次都创建和移除,直接用setVIsible()控制就好。

9、Button和ImageView等控件setScale9Enabled(true)或者cocosStudio设置九宫格后无法再通过loadTextures改变图片。

10、PageView的监听事件和触摸事件在手机上都无效,PageView的getCurPageIndex()方法在手机上无法使用,需替换为getCurrentPageIndex()。

11、iOS版本中可能出现每个场景中第一次声音播放无效的问题,原因未知,解决方法可以在每个场景第一次执行播放声音代码时连续执行两次。

12、invalid native object错误,多半是因为因为没有addChild的原因,如果没必要addChild,那么一定要retain一下。

转载于:https://www.cnblogs.com/guangyun/p/8421310.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值