为啥event返回的是整个class

this.btn_sysmail.on(cc.Node.EventType.TOUCH_START, function (event) {
that.content_system.removeAllChildren();
that.cur_type = mailType.MAIL_SYSTEM;
console.log(event);
that.btn_selectedmethod(event.target);
}

无语了阿https://docs.cocos.com/creator/manual/zh/scripting/events.html
文档里啥都没有

升级升级,升级个锤子阿,这啥玩意,一大堆问题,你倒是把文档写全阿

求你们别升级了,改好问题不行吗

proto.on = function (type, callback, target, once) {
if (!callback) {
cc.errorID(6800);
return;
}

if ( !this.hasEventListener(type, callback, target) ) {
    this.__on(type, callback, target, once);

    if (target && target.__eventTargets) {
        target.__eventTargets.push(this);
    }
}
return callback;

};

难道我就直接event.zidingyitarget用吗,然后你们改了api之后我再改

搞笑了,为啥不用之前的官方定义名了,整的这么随意,好像是我写的代码,我写完了基本别人都用不了,就给自己用的

而且,文档、文档、文档!!!啥都没有

我这边返回的是 EventTouch,测试版本是 2.3.3

咱也不知道,咱也不敢问,第二次事件就变了

同样是2.3.3 第一次返回ccclas,第二次返回bubbles: true
currentTarget: CCClass {_name: “btn_friendmail”, _objFlags: 0, _parent: CCClass, _children: Array(1), _active: true, …}
currentTouch: 110.cc.Touch {_lastModified: 1589360253279, _prevPoint: i, _point: i, _id: 0, _startPoint: i, …}
eventPhase: 2
target: CCClass {_name: “btn_friendmail”, _objFlags: 0, _parent: CCClass, _children: Array(1), _active: true, …}
touch: 110.cc.Touch {_lastModified: 1589360253279, _prevPoint: i, _point: i, _id: 0, _startPoint: i, …}
type: “touchstart”
_eventCode: 0
_propagationImmediateStopped: false
_propagationStopped: false
_touches: [110.cc.Touch]
proto: 114.cc.Event

还是一样是 EventTouch

能否给一下,this.btn_sysmail 的类型吗?

cc.Node

我觉得可能是有东西串了。因为是点击一个按钮之后进入这个界面,这个界面默认有个发送emit,进入界面就发送

那你找到 emit 的地方,看看具体的操作是什么,正常应该不会返回 class 的

this.btn_sysmail.emit(cc.Node.EventType.TOUCH_START, this);

改了this.btn_sysmail.emit(cc.Node.EventType.TOUCH_START, {
target: btn_sysmail
});

https://docs.cocos.com/creator/manual/zh/scripting/events.html

该文档也有特地举了 emit 的例子,这里是否是因为不够清晰(或者是缺漏了),导致理解错误,如果是我们很抱歉,也希望你可以给出意见来,我们会继续改进,谢谢反馈

我忽略了我用了emit这个方法。但是emit这个用第三方数据的,我觉得应该让node.on也应该有第三方数据,这样统一变量,用的时候直接复制粘贴,不必特殊处理