AE表达式-插值算法(映射)

线性 liner(),平滑 ease,缓入ease_in ,缓出ease_out

结构:linear(t, t_min,t_max, value1, value2)
ease(t, t_min, t_max, value1, value2)
ease_in(...);ease_out(..)


t:目标参数(该参数必须是一维的)。例如想让位移来控制旋转,则表达式应该写在旋转的属性上(当前参数),位移属性就是目标参数

t_min:目标参数范围的下限(如果不填,默认0),可填或不填。

t_max:目标参数范围的上限(如果不填,默认1)

value1:当前参数范围下限,当目标参数到达t_min时,表达式返回该值(value1)

value2:当前参数范围上限,当目标参数到达t_max时,表达式返回该值(value2)


举例:linear(time,0,5,0,360);//通过时间来控制旋转,在5秒内旋转360°的线性变化

linear:得知整个变化过程是线性的

目标参数:时间(时间的变化范围是0到5)

当前参数:旋转(旋转的变化范围是0°到360°)

如果将该表达式应用到某个图层的旋转属性上,那么该图层会在5秒内完成一周的旋转,且图层在第五秒停止旋转


当然你可能会想,为什么要那么麻烦,直接time/5*360不就可以了?

但是,如果你想在5秒后停止旋转,不还得写个判断语句才可以,反而复杂化了。

这就是为什么用插值算法的原因,而且还可以使用ease等算法,让动作得到更流畅的变化效果,仅仅使用前面手写公式是做不到这一点的。


示例:模拟网页的滚动栏;进度条与数值百分比的变化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容