easyCtrl is a Cocos frame, which make key binding super easy, it also includes a controller that super smooth
https://www.cocos.com/en/creator-download
aa.ctrl
.add("forward",[KeyCode.KEY_W],this._moveForward,this.labels[0])
.add("backward",[KeyCode.KEY_S],this._moveBackward,this.labels[1])
.add("left",[KeyCode.KEY_A],this._moveLeft,this.labels[2])
.add("right",[KeyCode.KEY_D],this._moveRight,this.labels[3])
.add("dance",[KeyCode.KEY_X],this._danceAction,this.labels[4])
.add("rap",[KeyCode.KEY_N,KeyCode.KEY_B],this._rapAction,this.labels[5])
.add("basketball",[KeyCode.KEY_C,KeyCode.KEY_X],this._basketballAction,this.labels[6])
1 line code for keys binding replacement
aa.ctrl.updateBinding(binding.nameLabel.string,binding.keyLabel);
and supports Combos!!