CocosCreator 节点添加点击事件以及回调函数的注意点
例如:
this.node.getChildByName('XXXXX').on(cc.Node.EventType.TOUCH_END,回调函数,this);这里的参数“this”作为“target”表示响应函数的 this 对象;
如果参数不加“this”,会获取不到响应函数的内部对象;
例如:
//设定这样一个回调函数
myCallBcak: function(){
cc.log(this)
},
this.node.getChildByName('XXXXX').on(cc.Node.EventType.TOUCH_END,this.myCallBcak);
//打印出undefined
this.node.getChildByName('XXXXX').on(cc.Node.EventType.TOUCH_END,this.myCallBcak,this);
或者
this.node.getChildByName('XXXXX').on(cc.Node.EventType.TOUCH_END,this.myCallBcak.bind(this));
//打印出正常的对象
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
这里可以把方法写成如下格式:
functionname = ([params]) => {
//to-do
}
之后调用的时候,就可以不用写this.node.function.bind了,其后写的this也可以去掉,爽歪歪啊
错了,还需要如此赋值:this.functionAliasName = this.functionname.bind(this)
如此之后,可以放肆使用this.functionAliasName,而不用担心this的指向