缓动系统tween,如果运行完一个之后再运行第二个

比如我要一个人物向下走100像素,再向右走100像素,走动的时候需要变换人物的动画,我是这样写的
var anims = this.node.getComponent(cc.Animation);
anims.play(“females”);
cc.tween(this.node)
.by(1, { position: cc.v2(0, -100) })
.start();

    anims.play("femaled");
    cc.tween(this.node)
        .by(1, { position: cc.v2(100, 0) })
        .start();

我本以为第一个tween运行完之后才会执行下一个tween,但是实际上直接就运行第二个tween,第一个刚开始执行就被第二个覆盖了。由于向下走的动画和向右走的动画是不一样的,我想要中间变换一下animation动画,所以不能把所有的tween写到一起。请问这样的情况如何解决。我是个新手,希望大神帮忙指点一下,谢谢。

var anims = this.node.getComponent(cc.Animation);
anims.play(“females”);
cc.tween(this.node)
.by(1, { position: cc.v2(0, -100) })
.call(()=>{
anims.play(“femaled”);
})
.by(1, { position: cc.v2(100, 0) })
.start();

试一下

1赞

可以放在第一个动画的回调里面,也可以做个序列,依次执行,文档里都有

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。