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

  • 相关阅读:
    jquery实现选项卡(两句即可实现)
    常用特效积累
    jquery学习笔记
    idong常用js总结
    织梦添加幻灯片的方法
    LeetCode "Copy List with Random Pointer"
    LeetCode "Remove Nth Node From End of List"
    LeetCode "Sqrt(x)"
    LeetCode "Construct Binary Tree from Inorder and Postorder Traversal"
    LeetCode "Construct Binary Tree from Preorder and Inorder Traversal"
  • 原文地址:https://www.cnblogs.com/guangyun/p/8421310.html
Copyright © 2020-2023  润新知