Animation
Import Statement:
Inherited By:
Properties
alwaysRunToEnd : bool
loops : int
paused : bool
running : bool
Signals
started()
stopped()
Methods
complete()
pause()
restart()
resume()
start()
stop()
DetailedDescription
Animation元件不能被QML直接使用。这个元件是为其他元件提供共同的属性和方法的。使用这些共同属性和方法的动画继承于这个元件。直接使用这个元件将导致错误。
PropertyDocumentation
alwaysRunToEnd : bool
这个属性决定了动画是否会在停止设置时播放到结束。如果这个值为真,不管running被设置成假还是调用了stop()方法,动画都将继续播放到结束。complete()方法不影响这个值。这常常用于loops属性被设置,除了动画重起,动画将播放完成。默认为假。
注意这个属性不影响动画的过渡部分。
loops : int
动画循环播放的次数,默认为1,表示动画只播放一次。如果这个值设置成Animation.Infinite,则动画将无限循环下去。直到显式的设置running为假或调用stop()方法,动画才会停止。
下面是矩形无限旋转的例子。
Rectangle {
width: 100; height: 100; color: "green"
RotationAnimation on rotation {
loops: Animation.Infinite
from: 0
to: 360
}
}
paused : bool
这个属性表示了当前动画是否处于暂停状态。设置这个属性可以控制动画是否暂停。我们也可以通过Java脚本调用pause()和resume()方法控制动画的暂停。默认为假。
running : bool
动画是否在播放,设置这个属性能控制动画是否播放。
下面的例子当鼠标按下时,长方形将移动一次。
Rectangle {
width: 100; height: 100
NumberAnimation on x {
running: myMouse.pressed
from: 0; to: 100
}
MouseArea { id: myMouse }
}
下面的代码显示动画是否在运行。
NumberAnimation { id: myAnimation }
Text { text: myAnimation.running ? "Animation isrunning" : "Animation is not running" }
动画也能通过Java脚本调用start() 和stop()方法立刻开始或停止播放。
默认动画是不运行的。但这个元件的继承者们常常会默认设置这个属性为运行。
SignalDocumentation
started()
当动画开始,这个信号被发射。它只在独立动画的顶层被触发。Behavior、Transition或动画组中的一个动画,都不会触发这个信号。关联程序是onStarted。
stopped()
动画结束时发射这个信号。手动停止或运行完成,都发射这个信号。但它只在独立动画的顶层触发。Behavior、Transition或动画组的一个动画,都不触发它。如果alwaysRunToEnd是真,这个信号将在当前的动画播放完毕时出发。关联程序是onStopped.
MethodDocumentation
complete()
停止动画,跳到终点。如果动画没有播放,调用这个方法没有影响。这个方法将设置running为假。不像stop()方法,这个方法让动画快速结束。
Rectangle {
NumberAnimation on x { from: 0; to: 100; duration:500 }
}
在250毫秒呼叫stop()方法,x为50;呼叫complete()方法,x为100。
pause()
动画暂停。如果动画是暂停或没有播放,调用这个方法没有任何影响。paused属性会被这个方法设置为真。
restart()
重启动画。这是简便的方法,等效于stop()然后start()。
resume()
继续暂停的动画。如果动画不是暂停或没有播放,调用这个方法没有影响。paused被这个方法设置成假。
start()
开始动画。如果动画已经播放,调用这个方法没有影响。running将被这个方法设置成真。
stop()
停止动画,如果动画没有播放,调用这个方法没有影响。running和paused会被这个方法设置成假。
这个方法通常会立即停止动画。
Rectangle {
NumberAnimation on x { from: 0; to: 100; duration:500 }
}
250毫秒的时候停止,x属性将会是50。当alwaysRunToEnd被设置,动画依旧会运行到完成,但running属性将被立刻设置成假。