缓动系统

    注:action已经被废弃了,请使用tween;

    注:在v1.0.3版本开始将不再依赖tween.js,如果使用了tween.js的相关特性,请注意及时适配

    注:在v1.0.4版本开始,toby的可选属性中增加了onStart,onUpdate,onComplete回调;

    与此前tween.js不同的地方主要是可选属性,为以下内容:

    • easing 的值定义变动了(这里做了兼容性处理)
    • 除了 easingonStartonUpdateonComplete,其它属性暂不支持(这里做了检查,控制台会有相应的警告)

    此前repeat的语义为重复几次,为了全面保持 Creator 2D 的设计,所以现在为执行几次,即repeat(1)代表执行一次。

    但目前的接口存在一定的限制,例如:通过this.node.position获取到的position是一个通用的Vec3

    当执行this.node.position.x = 1这段代码的时候,只执行了positiongetter,并没有执行postionsetter。由于dirty并没有更新,便会导致渲染时使用的节点的Transform信息没有更新。

    目前,我们也不支持这样的调用,而是鼓励使用或positionsetter,即以下代码方式:

    在新的Tween模块中可以对具有gettersetter的属性进行缓动,例如简单示例中nodeposition属性,这样在缓动的过程中,会进行相应的接口进行设置,从而保证dirty正常更新。

    注:切换场景时注意停止相应的缓动

    与 Creator 2D 不同的是新增了onStart,onUpdate,onComplete等属性,这些属性是回调函数,调用时会传入缓动的目标。

    另外,onUpdate调用时还会多传入一个目前缓动的进行值,范围为(0-1]

    回调的使用范例

    onUpdate为例,以下代码缓动一个位置,然后在onUpdate中将其设置到多个对象上,这样就像是缓动的合批。

    v1.0.4版本开始,当缓动目标为Node时,将会监听其销毁事件进行缓动的自动销毁,调用target方法也会自动更新监听。

    相关测试例更多详细介绍,请参考 Creator 的使用缓动系统