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的指向