最近在公司QML用的多,那么让我们一起来研究动画吧.
SpringAnimation我们称它为弹簧动画吧.根据Qt5.6文档显示它继承自NumberAnimation.
相对于NumberAnimation来说它多了几个特别的属性:
spring: 取值范围为 0—5.0(注意这是个float类型的),取值越大动画的加速度越快(其实可以这么理解,比如我们把一个正方形(坐标为x: 50, y:60)移动到(x:100, y:200).如果spring的值设置的特别大那么就会一下移动到指定坐标,很突兀的感觉.如果从现实的角度出发来思考的话spring其实就是指的是摩擦力,值越大摩擦力越小,摩擦力小了肯定加速度就快了呀.但是spring属性收到velocity属性的影响.当velocity属性被设置的大于0的时候就会限制spring的最大速度.
damping: 该值越大,震荡就会平复的越快.(0—1.0)
velocity: 用于控制spring属性的最大速率,该值被设置的越小spring的最大加速度就越小.
mass: 质量,该属性越大加速度越慢。(这就不说了吧物理)
esplion: 设置合适的值可以改变动画的性能,比如要是像素操作0.25比较合适,要是scale动画0.005比较合适.
modulus: 设置动画的模力,其值越大弹簧的硬值越大,也就是说弹簧的振幅越小.