缓动系统
注:action
已经被废弃了,请使用tween
;
注:在v1.0.3
版本开始将不再依赖tween.js
,如果使用了tween.js
的相关特性,请注意及时适配;
注:在v1.0.4
版本开始,to
和by
的可选属性中增加了onStart,onUpdate,onComplete
回调;
与此前tween.js
不同的地方主要是可选属性,为以下内容:
easing
的值定义变动了(这里做了兼容性处理)- 除了
easing
、onStart
、onUpdate
、onComplete
,其它属性暂不支持(这里做了检查,控制台会有相应的警告)
此前repeat
的语义为重复几次,为了全面保持 Creator 2D 的设计,所以现在为执行几次,即repeat(1)
代表执行一次。
但目前的接口存在一定的限制,例如:通过this.node.position
获取到的position
是一个通用的Vec3
。
当执行this.node.position.x = 1
这段代码的时候,只执行了position
的getter
,并没有执行position
的setter
。由于dirty
并没有更新,便会导致渲染时使用的节点的Transform
信息没有更新。
目前,我们也不支持这样的调用,而是鼓励使用或position
的setter
,即以下代码方式:
在新的Tween
模块中可以对具有getter
和setter
的属性进行缓动,例如简单示例中node
的position
属性,这样在缓动的过程中,会进行相应的接口进行设置,从而保证dirty
正常更新。
注:切换场景时注意停止相应的缓动;
与 Creator 2D 不同的是新增了onStart
,onUpdate
,onComplete
等属性,这些属性是回调函数,调用时会传入缓动的目标。
另外, onUpdate
调用时还会多传入一个目前缓动的进行值,范围为(0-1]
。
回调的使用范例
以onUpdate
为例,以下代码缓动一个位置,然后在onUpdate
中将其设置到多个对象上,这样就像是缓动的合批。
从v1.0.4
版本开始,当缓动目标为时,将会监听其销毁事件进行缓动的自动销毁,调用target
方法也会自动更新监听。
相关测试例。 更多详细介绍,请参考 Creator 的使用缓动系统。