请问大佬怎么实现再一直按着按键的时候动画的持续播放

比如我在持续按着left按键的时候,我想要的效果是一直循环播放runleft动作,但是现实情况的是,我一直按着left键的时候,动画是循环若干次之后就一直停在第一帧了。。这种情况应该怎么解决啊。

下面是我的onkeydown和onkeyup代码

onKeyDown: function (event) {
    switch (event.keyCode) {
        case cc.macro.KEY.right:
            // console.log("press D")
            this.playerRight();
            break;
        case cc.macro.KEY.left:
            this.playerLeft();
            break;
        case cc.macro.KEY.space:
            this.playerJump();
            break;
        case cc.macro.KEY.x:
            this.playerAttack();
            break;
    }
},

playerLeft: function () {
    this.Direction = -1;
    this.isRun = true;
    if (!this.Jumping) {
        this.player.play("runleft");
        cc.log("向左动画");
    }
},
//剩下的playerRight等不列出来了
onKeyUp: function (event) {
    switch (event.keyCode) {
        case cc.macro.KEY.right:
            // console.log("press D")
            this.endplayerRight();
            break;
        case cc.macro.KEY.left:
            this.endplayerLeft();
            break;
        case cc.macro.KEY.space:
            this.endplayerJump();
            break;
        case cc.macro.KEY.x:
            this.endplayerAttack();
            break;
    }
},
endplayerLeft: function () {
    // console.log("enter end player left");
    if (this.Direction == -1) {
        this.isRun = false;
        cc.log("向右静止动画")
    }
},

这里的判断逻辑问题,一直按下的时候会不停的去play runleft动画导致,优化一下就好

谢谢。在原有基础上加了一个eventKeyCode检测,已经改正并且调试完细节部分了。谢谢大佬

想问一下 我也是遇到这个问题 一直按下 a后 动画会顺利播放一次然后会一直重复播放第一帧的画面 这个是怎么解决的呢?

onKeyDown: function (event) {
    let keyCode = event.keyCode;
        switch(keyCode) {
            // 向左走
            case cc.macro.KEY.a:
                console.log('我按下了A');
                this._armatureDisPlay.playAnimation('奔跑', 1);
                this.input_flag = -1;
                break;
            // 向右走
            case cc.macro.KEY.d:
                console.log('我按下了D');
                this._armatureDisPlay.playAnimation('奔跑', 1);
                this.input_flag = 1;
                break;
        }
},

这个地方是给一个时间判断 还是说怎么样呢 目前没有在api文档里面找到好的解决办法

判断上个动画播放完毕没有呗,播放完了播放一次,没播放完不播放

但是在 dragonbones 的api文档里面 我没有找到能获取动画播放状态的方法 是不是可以使用监听器呢

按下a的时候加一个判断this.input_flag != -1 ,然后playAnimation里面的1设为0就是无限循环播放了,这样应该只会进入播放一次,这一次就是无限循环的播放

谢谢 大佬 解决了