1:设置node节点颜色及透明度
hexObj.color=new cc.Color(255,255,255,60);
如上设置透明度,会报错Should not set alpha via ‘color’, set ‘opacity’ please
正确设置透明度的方式为:hexObj.opacity=90;
另外诸如hexObj.color.setA(0.7);这种方式也是不生效的(但是不报错)
2:hex to color
node.color = cc.hexToColor(’#ffffff’);
3:string转数值
let name: string = "123";
// let a=Number(name);
// let a=+name;
let a=parseInt(name);//parseFloat
console.log("a+1:"+(a+1));
上述皆可以。
同时parseInt可传入第二个参数(2,10,16等),表示进制。默认是10。
4:计时器,延迟调用,循环调用
//只执行1次的计时器,2秒后执行
this.scheduleOnce(function(){ this.doSomething(); },2);
//只执行1次计时器,下一帧立即执行
this.scheduleOnce(() => { this.isStarted = true; }, 0);
//每隔5秒执行1次
this.schedule(function(){ this.doSomething(); },5);
//计算多次的计时器(1秒后,以0.1秒的执行间隔,执行10次)
this.schedule(function(){ this.doSomething(); },0.1,10,1);
this.unscheduleAllCallbacks(this);//停止某组件的所有计时器
5:查找节点
- 全局查找
cc.find(“Canvas”)
支持用/分割的路径,大小写敏感
- 父查子
this.node.getChildByName(“xx”)
不支持路径查找,只能查找当前节点的子节点,没有的话,返回null
6:使用ts的时候千万注意any类型
可能会造成莫名问题。故能确定类型的话,就手动强制转换 / 限定一下数据类型。
比如做数据存档的时候:假设value为number类型。cc.sys.localStorage.setItem("key",value)
。
读取:
let value = cc.sys.localStorage.getItem("key");
这个时候获得的value是any类型,你要是不把它转换为number,那么执行诸如value=value+1的话。通过在断点中看,value会从any被转换为string,最终的结果是21。
晴天霹雳
7:slice,splice傻傻分不清
slice为对数组进行截取
splice为对数组进行移除
8:获得屏幕宽高
cc.winSize.width
cc.winSize.height
cc.view.getVisibleSize()