Delayed Animations: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Cleanup) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{LangSwitch}} | |||
[[Category:Learning]] | [[Category:Learning]] | ||
[[Category:HowTo]] | [[Category:HowTo]] | ||
[[Category:Developing_with_Qt::Qt Quick]] | [[Category:Developing_with_Qt::Qt Quick]] | ||
__NOEDITSECTION__ | |||
Ever want the user to click something and then play out a series of delayed events? For example, opening a list and closing it again? | Ever want the user to click something and then play out a series of delayed events? For example, opening a list and closing it again? | ||
Line 15: | Line 12: | ||
Rectangle { | Rectangle { | ||
property int time: 800 | |||
property int size: 300 | |||
width: size | |||
height: size | |||
radius: size | |||
color: "red" | |||
Behavior on radius { | |||
NumberAnimation { | |||
duration: time | |||
} | |||
} | |||
Timer { | |||
id: reset | |||
interval: time | |||
onTriggered: parent.radius=size | |||
} | |||
MouseArea { | MouseArea { | ||
anchors.fill: parent | |||
onClicked: { | |||
parent.radius=0 | |||
reset.start() | |||
} | |||
} | |||
} | } | ||
</code> | </code> | ||
Note that if you just wanted the animation to follow directly after the previous one you could use SequentialAnimation. This example is rather to show arbitrary delays in animations. | Note that if you just wanted the animation to follow directly after the previous one you could use {{DocLink|SequentialAnimation}}. This example is rather to show arbitrary delays in animations. |
Latest revision as of 13:51, 28 June 2015
Ever want the user to click something and then play out a series of delayed events? For example, opening a list and closing it again?
The following example starts with a red circle. When the user clicks on the circle, it animates in to a rectangle and triggers a timer. Once the timer triggers, it animates the rectangle back in to a circle again.
import QtQuick 1.0
Rectangle {
property int time: 800
property int size: 300
width: size
height: size
radius: size
color: "red"
Behavior on radius {
NumberAnimation {
duration: time
}
}
Timer {
id: reset
interval: time
onTriggered: parent.radius=size
}
MouseArea {
anchors.fill: parent
onClicked: {
parent.radius=0
reset.start()
}
}
}
Note that if you just wanted the animation to follow directly after the previous one you could use SequentialAnimation. This example is rather to show arbitrary delays in animations.