为什么主角按一下键就会自己跳,直至出屏外 ,不按键自己也不能在原地跳

cc.Class({
extends: cc.Component,

properties: {
     // 主角跳跃高度
     jumpHeight: 0,
     // 主角跳跃持续时间
     jumpDuration: 0,
     // 最大移动速度
     maxMoveSpeed: 0,
     // 加速度
     accel: 0,
 },

 setJumpAction: function () {
     // 跳跃上升
     var jumpUp = cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight)).easing(cc.easeCubicActionOut());
     // 下落
     var jumpDown = cc.moveBy(this.jumpDuration, cc.v2(0, -this.jumpHeight)).easing(cc.easeCubicActionIn());
     // 不断重复
     return cc.repeatForever(cc.sequence(jumpUp, jumpDown));
 },
 // LIFE-CYCLE CALLBACKS:
 onKeyDown(event){
    //set a flag when key pressed
    switch(event.keyCode){
        case cc.macro.KEY.a:
        this.accLeft=true;
        break;
        case cc.macro.KEY.d:
        this.accRight=true;
        break;
    }
    },
    onKeyUp(event){
       //unset a flag when key released
       switch(event.keyCode){
           case cc.macro.KEY.a:
           this.accLeft=false;
           break;
           case cc.macro.KEY.d:
           this.accRight=false;
           break;
       }
   },

 onLoad: function () {
     // 初始化跳跃动作
     this.jumpAction = this.setJumpAction();
     this.node.runAction(this.jumpAction);
     //加速度方向开关
     this.accLeft=false;
     this.accRight=false;
     //主角当前水平方向速度
     this.xSpeed=0;
     //初始化键盘输入监听
     cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN,this.onKeyDown,this);
     cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP,this.onKeyUP,this);
 },
 onDestory(){
     //取消键盘输入监听
     cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN,this.onKeyDown,this);
     cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP,this.onKeyUP,this);
 },
 update:function(dt){
     //根据当前加速度方向每帧更新速度
     if(this.accLeft){
         this.xSpeed-=this.accel*dt;
     }else if (this.accRight){
         this.xSpeed+=this.accel*dt;
     }
      // 限制主角的速度不能超过最大值
    if ( Math.abs(this.xSpeed) > this.maxMoveSpeed ) {
        // if speed reach limit, use max speed with current direction
        this.xSpeed = this.maxMoveSpeed * this.xSpeed / Math.abs(this.xSpeed);
    }

    // 根据当前速度更新主角的位置
    this.node.x += this.xSpeed * dt;
},
     




 start () {

 },

 // update (dt) {},

});

能不能帮我弄弄 十分感激

看浏览器调试说什么事件回调必须为零

这是你的全部代码了吗

你在这个JS绑定的主角身上先设置一下
jumpHeight: 0,
jumpDuration: 0,
maxMoveSpeed: 0,
accel: 0,
这四个值

已解决 谢谢啦!