监听和发射事件中的target有什么用?

监听事件

事件处理是在节点(cc.Node)中完成的。对于组件,可以通过访问节点 this.node 来注册和监听事件。监听事件可以 通过 this.node.on() 函数来注册,方法如下:

cc.Class({
extends: cc.Component,

properties: {
},

onLoad: function () {
this.node.on(‘mousedown’, function ( event ) {
console.log(‘Hello!’);
});
},
});
值得一提的是,事件监听函数 on 可以传第三个参数 target,用于绑定响应函数的调用者。以下两种调用方式, 效果上是相同的:

// 使用函数绑定
this.node.on(‘mousedown’, function ( event ) {
this.enabled = false;
}.bind(this));

// 使用第三个参数
this.node.on(‘mousedown’, function (event) {
this.enabled = false;
}, this);
除了使用 on 监听,我们还可以使用 once 方法。once 监听在监听函数响应后就会关闭监听事件。

值得一提的是,事件监听函数 on 可以传第三个参数 target,用于绑定响应函数的调用者。以下两种调用方式, 效果上是相同的:

这个主要作用是什么啊?完全没看懂

第三个参数 target 就是你回调函数里面的 this

脑袋不好使,还是没明白

//组件A
cc.Class({
extends: cc.Component,

 properties: {
 },

 onLoad: function () {
  },

  methodA : function(){console.log("这是在组件a中")}

});

//组件B,并假设组件B中可以得到组件A的对象compA
cc.Class({
extends: cc.Component,

 properties: {
 },

 onLoad: function () {
        this.node.on('mousedown', function ( event ) {
             this.methodA();//这个this实际指向的是组件A的对象compA,而不是组件B
         }, compA);
  },

});

//组件B,并假设组件B中可以得到组件A的对象compA
cc.Class({
extends: cc.Component,
properties: {
},

onLoad: function () {
this.node.on(‘mousedown’, function ( event ) {
this.methodA();//这个this实际指向的是组件A的对象compA,而不是组件B
}, compA);
},
});

this.node.on(‘mousedown’, function ( event ) {
this.methodA();//这个this实际指向的是组件A的对象compA,而不是组件B
}, compA);

这个方法里面的this貌似本来就不知指向组件B的
比如在组件B中加sayHello方法,this.sayHello是会显示找不到方法的

如果不传入第三个参数的话,如下代码:
this.node.on(‘mousedown’, function ( event ) {
this.methodA();//这个this指向的就是事件的发起者,这里是node,不是node上挂载的组件(如果我没记错的话)
});

如果改成
this.node.on(‘mousedown’, function ( event ) {
this.methodA();//这个this实际指向的就是第三个参数compA
}, compA);

谢了,哥们,有点懂了,这COCOS的语法咋觉得有点模糊,哪里有比较好的教程啊。

ccc是基于js的,所以里面用到的语法应该基本都是js方面的,我也是通过谷歌、度娘学的,这方面帮不了你。。。。。

ps:最新的1.5.1版本可以用TypeScript,这个的话可以参考
https://mp.weixin.qq.com/s?__biz=MjM5ODAxNTM2NA==&mid=2659644702&idx=1&sn=da487a0434c71d4b76632c0c2f378702&chksm=bda36df58ad4e4e311b4076b074abd49f5bb709aca801f251f25317df5029479ad3ebd686e96#rd
我也正在看