一、描述
此类型不能直接在 QML 文件中使用。它的存在是为了提供一组通用属性和方法。
二、属性成员
1、alwaysRunToEnd : bool
此属性保存动画在停止时是否应运行完成。
complete() 方法不受此值的影响。
此属性对 Transition 中的动画没有影响。
2、loops : int
此属性保存动画应播放的次数。默认为 1。
如果设置为 Animation.Infinite,动画将不断重复直到被明确停止(通过将 running 属性设置为 false,或通过调用 stop() 方法)。
3、paused : bool
此属性保存动画当前是否暂停。
4、running : bool
此属性保存动画当前是否正在运行。
三、信号成员
1、finished()
当动画自然完成时发出此信号。
当 running 设置为 false 时不会发出它。
loops 属性设置为 Animation.Infinite 的动画也不会发出。
此外,它仅针对顶级独立动画发出。它不会为 Behavior 或 Transition 中的动画或属于动画组的动画发出。
如果 alwaysRunToEnd 为 true,则在动画完成当前迭代之前不会发出此信号。
2、started()
此信号在动画开始时发出。
它仅针对顶级独立动画触发。它不会为 Behavior 或 Transition 中的动画或属于动画组的动画发出。
3、stopped()
该信号在动画结束时发出。
它仅针对顶级独立动画触发。它不会为 Behavior 或 Transition 中的动画或属于动画组的动画发出。
如果 alwaysRunToEnd 为 true,则在动画完成当前迭代之前不会发出此信号。
四、成员函数
1、complete()
停止动画,跳转到最终的属性值。
如果动画未运行,则调用此方法无效。在调用 complete() 之后,running 属性将为 false。
与 stop() 不同,complete() 立即将动画快进到结束。 在下面的例子中,
2、pause()
暂停动画。
如果动画已暂停或未运行,则调用此方法无效。调用 pause() 后, paused 属性将为 true。
3、restart()
重新开始动画。这是一种便捷方法,相当于先调用stop(),然后再调用start()。
4、resume()
恢复暂停的动画。
如果动画没有暂停或者没有运行,调用这个方法是没有效果的。调用 resume() 之后,paused 属性将为 false。
5、start()
开始动画。
如果动画已经在运行,则调用此方法无效。在调用 start() 之后, running 属性将为 true。
6、stop()
停止动画。
如果动画未运行,则调用此方法无效。调用之后,running 和 paused 属性都将为 false。
通常 stop() 会立即停止动画,动画不会进一步影响属性值。
Rectangle
{
NumberAnimation on x { from: 0; to: 100; duration: 500 }
}
此例若在 250 毫秒时停止,x 属性的值为 50。
但是,如果设置了 alwaysRunToEnd 属性,动画将继续运行直到完成然后停止。 running 属性仍然会立即变为 false。