/*!
\page qmlanimation.html
\target qmlanimation
\title QML Animation
QML supports three different forms of animation - basic property animation,
states and transitions and property behaviors.
\section1 Property Animation
Animation in QML is done by animating properties of objects.
Any property of a recognizable type can be animated. Currently those types include:
\list
\o qreal
\o int
\o Most of QVariant's built-in types
\endlist
Animations can also involve numerous properties on numerous objects.
Other Features:
\list
\o Support for a large set of parameterized easing curves. (based on the Penner easing equations)
\o Animation synchronization
\endlist
The simplest form of animation is using \c <NumericAnimation/>
The following example creates a bouncing effect:
\code
\endcode
\image propanim.gif
\target states-transitions
\section1 States and Transitions
\section2 States
QML states describe user interface configurations, including:
\list
\o What UI elements are present
\o The properties of those elements (including how they behave)
\o What actions are available
\endlist
A state can also be thought of as a set of batched changes from a default configuration.
Examples of states in modern UI:
\list
\o A Contacts application has a 'View Contact' state and an 'Edit Contact' State. In the first state the information presented is static (using labels), and in the second it is editable (using editors).
\o A button has a pressed and unpressed state. When pressed the text moves down and to the right, and the button has a slightly darker appearance.
\endlist
In QML:
\list
\o Any object can use states.
\o There is a default state. The default state can be explicitly set.
\o A state can affect other the properties of other objects, not just the object owning the state (and not just that object's children).
\endlist
The following example shows a simple use of states. In the default state \c myrect is positioned at 0,0. In the 'moved' state it is positioned at 50,50.
\code
-
\endcode
\section2 Transitions
QML transitions describe animations to perform when state changes occur.
For the previous example, a transition could describe how \c myrect moved from its initial position to its new position:
\code
\endcode
QML transitions can use selectors to determine which state changes a transition should apply to:
\code
...
\endcode
Transitions can happen in parallel, in sequence, or in any combination of the two:;
\code
\endcode
\section1 Property Behaviors
\note Property behaviors are currently experimental.
*/