相关问题
HarmonyOS 如何实现二次贝塞尔曲线动画?
228浏览 • 1回复 待解决
HarmonyOS Tabs如何取消弹簧效果
255浏览 • 1回复 待解决
HarmonyOS 使用动画崩溃,请问如何调整
409浏览 • 1回复 待解决
使用转场动画时,如何在消失转场动画完成时执行其他操作
2008浏览 • 1回复 待解决
HarmonyOS CAPI动画怎么使用?
210浏览 • 1回复 待解决
如何使用 HarmonyOS 提供的高性能动画组件?
46浏览 • 0回复 待解决
属性动画如何实现宽高动画效果
1905浏览 • 1回复 待解决
如何应用属性动画实现宽高的动画
299浏览 • 1回复 待解决
animateTo动画如何暂停
792浏览 • 2回复 待解决
HarmonyOS 有没有自定义视图绘制的案例, 绘制渐变曲线?
174浏览 • 1回复 待解决
有没有实现贝塞尔曲线的相关库?
58浏览 • 1回复 待解决
如何实现动画转场效果
769浏览 • 1回复 待解决
HarmonyOS 如何实现RippleView动画?
230浏览 • 1回复 待解决
lottile动画如何切圆角
866浏览 • 0回复 待解决
如何支持SVGA动画?项目中一些原有的动画是svga的,在HarmonyOS中,有没有方案可以使用svga动画?
261浏览 • 1回复 待解决
如何使用ArkUI框架实现复杂的页面交互和动画效果?
389浏览 • 1回复 待解决
如何自定义弹窗的弹出动画和关闭动画
1646浏览 • 2回复 待解决
HarmonyOS 如何实现WaveView动画?
230浏览 • 1回复 待解决
animateTo动画如何直接停止
2427浏览 • 2回复 待解决
如何全局设置页面转场动画
657浏览 • 1回复 待解决
HarmonyOS如何实现动态缩放动画
432浏览 • 1回复 待解决
TransitionEffect动画循环播放如何关闭
1755浏览 • 1回复 待解决
求教ArkUI如何实现组合动画?
5428浏览 • 1回复 待解决
鸿蒙如何实现动画值变化
9360浏览 • 1回复 待解决
文字动画效果如何实现
1835浏览 • 0回复 待解决
实现背景
应用开发者在实际开发过程中,发现动画曲线文档中,有三种弹簧动画曲线:Curves.springCurve,Curves.springMotion,Curves.responsiveSpringMotion,那么如何根据当前自身业务需求来选择曲线呢?以下我们将分别来阐述这三种曲线的用法。
示意图
弹簧曲线的示意图如下:
Curves.springCurve
构造弹簧曲线对象,需要给曲线指定一个初速度,物体根据物体的质量、刚度、阻尼进行弹性形变
参数:
参数名
类型
必填
说明
velocity
number
是
初始速度。是由外部因素对弹性动效产生的影响参数,其目的是保证对象从之前的运动状态平滑的过渡到弹性动效。
mass
number
是
质量。弹性系统的受力对象,会对弹性系统产生惯性影响。质量越大,震荡的幅度越大,恢复到平衡位置的速度越慢。
stiffness
number
是
刚度。是物体抵抗施加的力而形变的程度。在弹性系统中,刚度越大,抵抗变形的能力越强,恢复到平衡位置的速度就越快。
damping
number
是
阻尼。是一个纯数,无真实的物理意义,用于描述系统在受到扰动后震荡及衰减的情形。阻尼越大,弹性运动的震荡次数越少、震荡幅度越小。
返回值:
类型
说明
ICurve
曲线的插值对象。
示例:
Curves.springMotion
构造弹性动画曲线对象。如果对同一对象的同一属性进行多个弹性动画,每个动画会替换掉前一个动画,并继承之前的速度,无需指定初速度。参数:
参数名
类型
必填
说明
response
number
否
弹簧自然振动周期,决定弹簧复位的速度。单位:秒,默认值:0.55。
dampingFraction
number
否
阻尼系数。0表示无阻尼,一直处于震荡状态;大于0小于1的值为欠阻尼,运动过程中会超出目标值;等于1为临界阻尼;大于1为过阻尼,运动过程中逐渐趋于目标值。默认值:0.825。
overlapDuration
number
否
弹性动画衔接时长。发生动画继承时,如果前后两个弹性动画response不一致,response参数会在overlapDuration时间内平滑过渡。单位:秒,默认值:0。
返回值:
类型
说明
ICurve
曲线对象。说明: 弹性动画曲线为物理曲线,animation、animateTo中的duration参数不生效,动画持续时间取决于springMotion动画曲线参数和之前的速度。时间不能归一,故不能通过该曲线的interpolate函数获得插值。
示例:
Curves.responsiveSpringMotion
构造弹性跟手动画曲线对象,是springMotion的一种特例,仅默认参数不同,可与springMotion混合使用参数:
参数名
类型
必填
说明
response
number
否
解释同springMotion中的response。单位:秒,默认值:0.15。
dampingFraction
number
否
解释同springMotion中的dampingFraction。默认值:0.86。
overlapDuration
number
否
解释同springMotion中的overlapDuration。单位:秒,默认值:0.25。
返回值:
类型
说明
ICurve
曲线对象。
说明:
1.弹性跟手动画曲线为springMotion的一种特例,仅默认值不同。如果使用自定义参数的弹性曲线,推荐使用springMotion构造曲线;如果使用跟手动画,推荐使用默认参数的弹性跟手动画曲线。
2.animation、animateTo中的duration参数不生效,动画持续时间取决于responsiveSpringMotion动画曲线参数和之前的速度,也不能通过该曲线的interpolate函数获得插值。
示例:
完整代码