Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Classes principales  ·  Annotées  ·  Classes groupées  ·  Modules  ·  Fonctions  · 

shakeit.qml Example File

sensors/shakeit/shakeit.qml
 /****************************************************************************
 **
 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
 ** Contact: http://www.qt-project.org/
 **
 ** This file is part of the QtSensors module of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:LGPL$
 ** GNU Lesser General Public License Usage
 ** This file may be used under the terms of the GNU Lesser General Public
 ** License version 2.1 as published by the Free Software Foundation and
 ** appearing in the file LICENSE.LGPL included in the packaging of this
 ** file. Please review the following information to ensure the GNU Lesser
 ** General Public License version 2.1 requirements will be met:
 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** In addition, as a special exception, Nokia gives you certain additional
 ** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
 ** GNU General Public License Usage
 ** Alternatively, this file may be used under the terms of the GNU General
 ** Public License version 3.0 as published by the Free Software Foundation
 ** and appearing in the file LICENSE.GPL included in the packaging of this
 ** file. Please review the following information to ensure the GNU General
 ** Public License version 3.0 requirements will be met:
 ** http://www.gnu.org/copyleft/gpl.html.
 **
 ** Other Usage
 ** Alternatively, this file may be used in accordance with the terms and
 ** conditions contained in a signed written agreement between you and Nokia.
 **
 **
 **
 **
 **
 **
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/

 import QtQuick 2.0
 import QtSensors 5.0
 //import QtMultimedia 4.0
 import Qt.multimediakit 4.0

 Rectangle {
     id: window

     state: "default"

     Audio {
         id :phone
         source: "audio/phone.wav" //mono
     }
     Audio {
         id :loopy2a_mono
         source: "audio/loopy2a_mono.wav" //mono
     }

     Text {
         id: label
         text: qsTr("Shake to rotate triangles")
         y: parent.height / 4
         anchors.horizontalCenter: parent.horizontalCenter
     }
     Image {
         id: triangle1
         smooth: true
         source: "images/triangle.png"
         x: parent.width / 2 - (triangle1.width / 2)
         y: parent.height / 2 - (triangle1.height);
         Behavior on x { SmoothedAnimation { velocity: 200 } }
         Behavior on y { SmoothedAnimation { velocity: 200 } }
         transform: Rotation {
              id: myRot
          }
     }
     Image {
         id: triangle2
         smooth: true
         source: "images/triangle2.png"
         x: parent.width / 2 - (triangle1.width + triangle2.width / 2)
         y: parent.height / 2 + (triangle2.height / 2);
         Behavior on x { SmoothedAnimation { velocity: 200 } }
         Behavior on y { SmoothedAnimation { velocity: 200 } }
     }
     Image {
         id: triangle3
         smooth: true
         source: "images/triangle3.png"
         x: parent.width / 2 + (triangle1.width / 2)
         y: parent.height / 2 + (triangle3.height / 2);

         Behavior on x { SmoothedAnimation { velocity: 200 } }
         Behavior on y { SmoothedAnimation { velocity: 200 } }
     }

     states: [
         State {
             name: "rotated"
             PropertyChanges { target: triangle1; rotation: 180 }
             PropertyChanges { target: triangle2; rotation: 90 }
             PropertyChanges { target: triangle3; rotation: 270 }
         },
         State {
             name: "default"
             PropertyChanges { target: triangle1; rotation: 0;
                 x: parent.width / 2 - (triangle1.width / 2)
                 y: parent.height / 2 - (triangle1.height);
             }
             PropertyChanges { target: triangle2; rotation: 0;
                 x: parent.width / 2 - (triangle1.width + triangle2.width / 2)
                 y: parent.height / 2 + (triangle2.height / 2);
             }
             PropertyChanges { target: triangle3; rotation: 0;
                 x: parent.width / 2 + (triangle1.width / 2)
                 y: parent.height / 2 + (triangle3.height / 2);
             }
         },
         State {
             name: "whipped"
             PropertyChanges { target: triangle1; rotation: 0; x:0; }
             PropertyChanges { target: triangle2; rotation: 0; x:0; y:triangle1.x + triangle1.height; }
             PropertyChanges { target: triangle3; rotation: 0; x:0;
                 y: triangle2.y + triangle2.height; }
         },
         State {
             name: "twistedR"
             PropertyChanges { target: triangle1; rotation: 270;
                 x:window.width - triangle1.width;
             }
             PropertyChanges { target: triangle2; rotation: 180;
                 x:window.width - triangle2.width;
             }
             PropertyChanges { target: triangle3; rotation: 90;
                 x:window.width - triangle3.width;
                 y:triangle2.y + triangle2.height;
             }
         },
         State {
             name: "twistedL"
             PropertyChanges { target: triangle1; rotation: 270;
                 x:0;
             }
             PropertyChanges { target: triangle2; rotation: 180;
                 x:0;
             }
             PropertyChanges { target: triangle3; rotation: 90;
                 x:0;
                 y:triangle2.y + triangle2.height;
             }
         },
         State {
             name: "covered"
             PropertyChanges { target: triangle1; rotation: 0;
                 x: window.width / 3 - triangle1.width / 2;
                 y: window.height - triangle1.height;
             }
             PropertyChanges { target: triangle2; rotation: 0;
                 x: window.width / 2 - triangle2.width / 2; // middle
                 y: window.height - triangle2.height;
             }
             PropertyChanges { target: triangle3; rotation: 0;
                 x: (window.width / 3 + window.width / 3) - triangle3.width / 2;
                 y: window.height - triangle3.height;
             }
         },
         State {
             name: "hovered"
             PropertyChanges { target: triangle1; rotation: 90;
                 x: window.width / 3 - triangle1.width / 2;
                 y: triangle1.height;
             }
             PropertyChanges { target: triangle2; rotation: 270;
                 x: window.width / 2 - triangle2.width / 2; // middle
                 y: triangle2.height;
             }
             PropertyChanges { target: triangle3; rotation: 195;
                 x: (window.width / 3 + window.width / 3) - triangle3.width / 2;
                 y: triangle3.height
             }
         },
         State {
             name :"slammed"
             PropertyChanges { target: triangle1; rotation: 0;
                 x: 0;
                 y: 0 + 30
             }
             PropertyChanges { target: triangle2; rotation: 0;
                 x: window.width - triangle2.width;
                 y: 0 + 30
                 ;}
             PropertyChanges { target: triangle3; rotation: 0;
                 x: window.width / 2 - triangle3.width / 2;
                 y:window.height - triangle3.height;
             }
         },
         State {
             name: "doubletapped"
             PropertyChanges { target: triangle1; rotation: 114;
                  transformOrigin: Item.BottomLeft
             }
             PropertyChanges { target: triangle2; rotation: 120;
                 transformOrigin: Item.BottomLeft
             }
         }
     ]

     transitions: [
         Transition {

         ParallelAnimation {
             NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce;duration: 2000; }
             RotationAnimation { id: t1Rotation; target: triangle1; duration: 1000;
                 direction: RotationAnimation.Clockwise }
             RotationAnimation { id: t2Rotation; target: triangle2; duration: 2000;
                 direction: RotationAnimation.Counterclockwise }
             RotationAnimation { id: t3Rotation; target: triangle3; duration: 2000;
                 direction: RotationAnimation.Clockwise }
         }

     }, Transition {
             to: "slammed"
             SequentialAnimation {
                 NumberAnimation { properties: "x"; easing.type: Easing.OutBounce;duration: 500; }

             }
         }, Transition {
             to: "doubletapped"
             SequentialAnimation {
                 PropertyAction { target: triangle1; property: "transformOrigin" }
                 PropertyAction { target: triangle2; property: "transformOrigin" }
                 NumberAnimation {  target: triangle1; properties: "rotation"; easing.type: Easing.OutBounce;duration: 500; }
                 NumberAnimation {  target: triangle2; properties: "rotation"; easing.type: Easing.OutBounce;duration: 1500; }
             }
         }, Transition {
             from: "doubletapped"
             SequentialAnimation {
                 NumberAnimation { properties: "rotation"; easing.type: Easing.OutBounce;duration: 1500; }
                 PropertyAction { target: triangle1; property: "transformOrigin" }
                 PropertyAction { target: triangle2; property: "transformOrigin" }
             }
         }
     ]

     SensorGesture {
         id: sensorGesture
         enabled: true
         gestures : ["QtSensors.shake", "QtSensors.whip", "QtSensors.twist", "QtSensors.cover",
             "QtSensors.hover", "QtSensors.turnover", "QtSensors.pickup", "QtSensors.slam" , "QtSensors.doubletap"]
         onDetected:{
             console.debug(gesture)
             label.text = gesture

             if (gesture == "shake") {
                 window.state == "rotated" ? window.state = "default" : window.state = "rotated"
                 timer.start()
             }
             if (gesture == "whip") {
                 window.state == "whipped" ? window.state = "default" : window.state = "whipped"
                 timer.start()
             }
             if (gesture == "twistRight") {
                 window.state == "twistedR" ? window.state = "default" : window.state = "twistedR"
                 timer.start()
             }
             if (gesture == "twistLeft") {
                 window.state == "twistedL" ? window.state = "default" : window.state = "twistedL"
                 timer.start()
             }
             if (gesture == "cover") {
                 window.state == "covered" ? window.state = "default" : window.state = "covered"
                 timer.start()
             }
             if (gesture == "hover") {
                 window.state == "hovered" ? window.state = "default" : window.state = "hovered"
                 timer.start()
             }
             if (gesture == "turnover") {
                 window.state = "default"
                 loopy2a_mono.play();
                 timer.start()
             }
             if (gesture == "pickup") {
                 window.state = "default"
                 phone.play()
                 timer.start()
             }
             if (gesture == "slam") {
                 window.state == "slammed" ? window.state = "default" : window.state = "slammed"
                 timer.start()
             }
             if (gesture == "doubletap") {
                 window.state == "doubletapped" ? window.state = "default" : window.state = "doubletapped"
                 timer.start()
             }
         }
     }
     Timer {
         id: timer
         running: false
         repeat: false
         interval: 3000
         onTriggered: {
             console.log("timer triggered")
             window.state = "default"
             label.text = "Try another gesture"
         }
     }
 }
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 5.0-snapshot
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web