• 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一下。

  • 相关阅读:
    错误 6 未能找到类型或命名空间名称“BLL”(是否缺少 using 指令或程序集引用?)
    linq 两个字段排序
    设置checkbox只读
    乐蜂网SALES倒计时原码展示
    Value cannot be null. Parameter name: source
    浅谈windows.onload()与$(document).ready()
    MVC之ViewData.Model
    td标签里内容不换行
    input type="image" 提交表单
    扩展Puppet – 建立Puppet CA集群
  • 原文地址:https://www.cnblogs.com/guangyun/p/8421310.html
Copyright © 2020-2023  润新知