[一个需求]cc.tween 同时调用 to 和 by

  • Creator 版本:2.0.9

目前有一个需要,让图片透明度逐渐变为0,同时 position y 减去40。一个是绝对值的变化,一个是相对值的变化。

这听起来可以这样写:

cc.tween(this.node)
  .to(1, { opacity: 255 })
  .by(1, { position: cc.v2(0, -40) })

但出于业务的需要,这两个动作需要同时进行,所以很想有一个API,可以在一个动作里完成两者,类似于

cc.tween(this.node).toAndBy(1, {
    to: {
        opacity: 255
    },
    by: {
        position: cc.v2(0, -40)
    }
});

不知道开发团队是否会考虑开发类似功能?

不是可以用 动作系统代替吗,
let action = cc.spawn(cc.fadeTo(1,0), cc.moveBy(1, cc.v2(0,-40));
然后 this.node.run(action) 就行了

是自己孤陋寡闻了,多谢了

.parallel了解一下

https://docs.cocos.com/creator/2.1/manual/zh/scripting/tween.html 这里有api文档

不要以为to只能做绝对位移
cc.tween(this.node).to(1, { opacity: 255, y: this.node.y - 40 })

2赞

听说 2.0.9 上好像没法用啊

我的代码是先生成一份 Action,然后 clone 调用它:

hideAction = cc.tween().to(0.5, { opacity: 0, position: cc.v2(0, -40) });

this.showAction.clone(this.Node1).start();
this.showAction.clone(this.Node2).start();

这种情况下有什么办法可以做到相对位移呢?

this.hideAction = cc.tween().by(0.5, { opacity: -255, position: cc.v2(0, -40) });

this.hideAction.clone(this.Node1).start();
this.hideAction.clone(this.Node2).start();

简单啊,如果你一定用相对,那么还是用 by 比较靠谱,只是opacity也用相对就可以了,opacity - 255刚好是0

多谢了!