EventTarget接受有参数的消息时无法获得数据

  • Creator 版本:2.0.4

  • 目标平台: 模拟器

  • 详细报错信息,包含调用堆栈:
    Simulator: E/jswrapper (271): ERROR: Uncaught TypeError: Cannot read property ‘msg’ of undefined, location: assets/OnTest.js:0:0
    STACK:
    [0]anonymous@assets/OnTest.js:20
    [1]170.CallbacksInvoker.invoke@src/cocos2d-jsb.js:27878
    [2]start@assets/EmitTest.js:19
    [3]anonymous@(no filename):3
    [4]invoke@src/cocos2d-jsb.js:11712
    [5]startPhase@src/cocos2d-jsb.js:11852
    [6]mainLoop@src/cocos2d-jsb.js:7064
    [7]callback@src/cocos2d-jsb.js:7294
    [8]tick@jsb-adapter/jsb-builtin.js:2001
    at HTMLElement.print-simulator-log (G:\CocosCreator2\resources\app.asar\editor\builtin\scene\panel\messages\scene.js:1:1487)
    at Object.e._dispatch (G:\CocosCreator2\resources\app.asar\editor-framework\lib\renderer\panel.js:1:1941)
    at EventEmitter.o.on.s (G:\CocosCreator2\resources\app.asar\editor-framework\lib\renderer\ipc.js:1:2917)
    at emitMany (events.js:127:13)
    at EventEmitter.emit (events.js:204:7)

  • 重现方式:

三个脚本
//Emit.js
var MsgCenter = require(“GameManager”);
cc.Class({
extends: cc.Component,
start ()
{
MsgCenter.emit(‘test’, {
msg: ‘Hello, this is Cocos Creator’,
})
},
});
//End Emit.js

//On.js
var MsgCenter = require(“GameManager”);
cc.Class({
extends: cc.Component,
start()
{
MsgCenter.on(‘test’, function (event) {
console.log(event.detail.msg);
});
}
});
//End On.js

//GameManager.js
var MsgCenter = new cc.EventTarget();
module.exports = MsgCenter;
//End GameManager.js