diff options
-rw-r--r-- | examples/quick/animation/animation.qml | 1 | ||||
-rw-r--r-- | examples/quick/animation/animation.qrc | 1 | ||||
-rw-r--r-- | examples/quick/animation/basics/animators.qml | 118 | ||||
-rw-r--r-- | examples/quick/animation/doc/src/animation.qdoc | 3 | ||||
-rw-r--r-- | src/quick/doc/src/concepts/statesanimations/topic.qdoc | 19 |
5 files changed, 142 insertions, 0 deletions
diff --git a/examples/quick/animation/animation.qml b/examples/quick/animation/animation.qml index 2bf5a05712..cf894d1f35 100644 --- a/examples/quick/animation/animation.qml +++ b/examples/quick/animation/animation.qml @@ -50,6 +50,7 @@ Item { Component.onCompleted: { addExample("ColorAnimation", "Interpolates between colors", Qt.resolvedUrl("basics/color-animation.qml")); addExample("PropertyAnimation", "Interpolates between numbers", Qt.resolvedUrl("basics/property-animation.qml")); + addExample("Animators", "Using Animators", Qt.resolvedUrl("basics/animators.qml")); addExample("Behaviors", "Animates procedural movement", Qt.resolvedUrl("behaviors/behavior-example.qml")); addExample("Wiggly Text", "Text that wiggles as you drag it", Qt.resolvedUrl("behaviors/wigglytext.qml")); addExample("Tv Tennis", "Paddles that follow a ball", Qt.resolvedUrl("behaviors/tvtennis.qml")); diff --git a/examples/quick/animation/animation.qrc b/examples/quick/animation/animation.qrc index d1217ac378..d4e78c82f0 100644 --- a/examples/quick/animation/animation.qrc +++ b/examples/quick/animation/animation.qrc @@ -18,5 +18,6 @@ <file>states/qt-logo.png</file> <file>states/states.qml</file> <file>states/transitions.qml</file> + <file>basics/animators.qml</file> </qresource> </RCC> diff --git a/examples/quick/animation/basics/animators.qml b/examples/quick/animation/basics/animators.qml new file mode 100644 index 0000000000..3454eca13c --- /dev/null +++ b/examples/quick/animation/basics/animators.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.2 + +Item { + id: window + width: 320; height: 440 + + // Let's draw the sky... + Rectangle { + anchors.fill: parent + gradient: Gradient { + GradientStop { position: 0.0; color: "DeepSkyBlue" } + GradientStop { position: 0.499; color: "LightSkyBlue" } + GradientStop { position: 0.5; color: "ForestGreen" } + GradientStop { position: 1.0; color: "DarkGreen" } + } + } + + //! [0] + SequentialAnimation { + SequentialAnimation { + ParallelAnimation { + YAnimator { + target: smiley; + from: smiley.minHeight; + to: smiley.maxHeight + easing.type: Easing.OutExpo; + duration: 300 + } + ScaleAnimator { + target: shadow + from: 1 + to: 0.5 + easing.type: Easing.OutExpo; + duration: 300 + } + } + ParallelAnimation { + YAnimator { + target: smiley; + from: smiley.maxHeight; + to: smiley.minHeight + easing.type: Easing.OutBounce; + duration: 1000 + } + ScaleAnimator { + target: shadow + from: 0.5 + to: 1 + easing.type: Easing.OutBounce; + duration: 1000 + } + } + } + PauseAnimation { duration: 500 } + running: true + loops: Animation.Infinite + } + //! [0] + + // The shadow for the smiley face + Image { + id: shadow; + anchors.horizontalCenter: parent.horizontalCenter + y: smiley.minHeight + smiley.height + source: "images/shadow.png" + } + + Image { + id: smiley + property int maxHeight: window.height / 3 + property int minHeight: 2 * window.height / 3 + + anchors.horizontalCenter: parent.horizontalCenter + y: minHeight + source: "images/face-smile.png" + + } +} diff --git a/examples/quick/animation/doc/src/animation.qdoc b/examples/quick/animation/doc/src/animation.qdoc index 734b1af118..34a1eeb488 100644 --- a/examples/quick/animation/doc/src/animation.qdoc +++ b/examples/quick/animation/doc/src/animation.qdoc @@ -41,6 +41,9 @@ PropertyAnimation demonstrates using a number animation to bounce a circle up and down. \snippet animation/basics/property-animation.qml 0 + Animators demonstrates using a animators to bounce an icon up and down. + \snippet animation/basics/animators.qml 0 + Behaviors demonstrates using behaviors to animate moving a rectangle to whereever you click. \snippet animation/behaviors/behavior-example.qml 0 diff --git a/src/quick/doc/src/concepts/statesanimations/topic.qdoc b/src/quick/doc/src/concepts/statesanimations/topic.qdoc index cb154a0370..e294b5325e 100644 --- a/src/quick/doc/src/concepts/statesanimations/topic.qdoc +++ b/src/quick/doc/src/concepts/statesanimations/topic.qdoc @@ -115,6 +115,25 @@ result in undefined behavior occurring. Please see the documentation about \l{qtquick-statesanimations-behaviors.html} {using Qt Quick Behaviors with States} for more information about this topic. +\section1 Animators + +The \l Animator types are a special type of animation which bypass +the QML objects and operate directly on the primitives in the +\l {Qt Quick Scene Graph}{scene graph}. This has the benefit that +the Animator based animations can be run on the scene graph's rendering thread +(when applicable) and can continue to animate even when UI is otherwise +blocked. + +Qt Quick provides the following Animator types: +\list +\li \l {XAnimator} - Animates the horizontal position of an \l {Item}. +\li \l {YAnimator} - Animates the vertical position of an \l {Item}. +\li \l {ScaleAnimator} - Animates the scale factor of an \l {Item}. +\li \l {RotationAnimator} - Animates the rotation of an \l {Item}. +\li \l {OpacityAnimator} - Animates the opacity of an \l {Item}. +\li \l {UniformAnimator} - Animates a uniform in a \l {ShaderEffect}. +\endlist + \section1 Animated Sprites The concept of animated sprites is separate to the concept of animations as |