缓动系统(cc.tween)进行同时不能改变其他属性,不生效

  • Creator 版本:2.3.2

  • 目标平台: Web

  • 详细报错信息,包含调用堆栈:

  • 重现方式:

  • 之前哪个版本是正常的 :

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:100%

  • 额外线索:

cc.tween(animateNode).repeatForever(cc.tween().by(this.jumpDuration, {
position: cc.v2(0, this.jumpHeight)
}, {
easing: 'easeCubicActionOut'
}).by(this.jumpDuration, {
position: cc.v2(0, -1 * this.jumpHeight)
}, {
easing: 'easeCubicActionIn'
}).call(that.playJumpSound, )).start();

同样的方式,使用动作系统,就可以在执行动作的同时改变其他属性,缓动系统不行
// 跳跃上升
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());
// 添加一个回调函数,用于在动作结束时调用我们定义的其他方法
var callback = cc.callFunc(this.playJumpSound, this);
// 不断重复,而且每次完成落地动作后调用回调来播放声音
return cc.repeatForever(cc.sequence(jumpUp, jumpDown, callback));

看你代码有点乱,如果用tween大概是这样

cc.tween(animateNode)
  .repeatForever(
    cc.tween()
      .by(1, { position: cc.v2(0, 100) }, { easing: cc.easeCubicActionOut().easing })
      .by(1, { position: cc.v2(0, -1 * 100) }, { easing: cc.easeCubicActionIn().easing })
      .call(() => {
        //this.playJumpSound();
      })
   )
   .start()

这样也不行啊,你试一下动画时间设置长一点,然后在动画内在其他函数改变node其他属性,是不生效的.

我也遇到相同的问题了,我再重写上下跳远的时候提示我用tween,然后node.x一直无法修改。官方入门教程无法用cc.tween实现左右移动的问题