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