From fcde8e7f6c7d65cde066bc5f6f06726ce33cb609 Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Mon, 30 Sep 2013 15:33:57 +0200 Subject: Animator overview docs and example. Change-Id: If0852e48dbbfea4fadca9c897ea0e62393763055 Reviewed-by: Jerome Pasion --- examples/quick/animation/animation.qml | 1 + examples/quick/animation/animation.qrc | 1 + examples/quick/animation/basics/animators.qml | 118 ++++++++++++++++++++++++ examples/quick/animation/doc/src/animation.qdoc | 3 + 4 files changed, 123 insertions(+) create mode 100644 examples/quick/animation/basics/animators.qml (limited to 'examples/quick/animation') 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 @@ states/qt-logo.png states/states.qml states/transitions.qml + basics/animators.qml 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 -- cgit v1.2.3