2016-05-12 4 views
0

Ich weiß nicht, ob was ich zu tun versucht, obwohl es mir scheint, als sollte es sein ... Ich versuche, ein Objekt mit zu animieren sequentielle oder parallele Animation. Dies funktioniert gut, wenn die Anzahl der Animationseigenschaften in sich selbst normal eingestellt ist (wie in der Dokumentation vorgeschlagen), aber ich möchte das Zahlen Animationsobjekt nicht auf eine einzige Einstellung/Objekt fest codieren, ich würde bevorzugen, dass die sequentielle Animation oberste Ebene ist und somit zugreift das Zahlenanimationsobjekt (innerhalb der sequentiellen Animation) von woanders ... Interessanterweise zeigt die Konsolenausgabe auf dem Zahlenanimationsobjekt, wenn ich die gewünschten Einstellungen vorgenommen habe, dass alles eingestellt ist, aber immer noch keine Animation. Hier ist, was ich bis jetzt bekam:Objekt wird nicht animiert, wenn die Zahlenanimationseigenschaften an anderer Stelle in qml definiert sind

Component.onCompleted: { 
    anim.accessToNum.target = rect 
    anim.accessToNum.property = "x" 
    anim.accessToNum.to = 100 
    anim.accessToNum.duration = 1000 
} 

Rectangle { 
    id: rect 
    width: 50; height: 50 
    color: "red" 
} 
SequentialAnimation { 
    id: anim 
    running: true 
    property var accessToNum: num 
    NumberAnimation { id: num} 
} 

Danke.

Antwort

2

Sie haben

running: true 

Satz auf die Animation, so dass es beginnt sofort ohne target Animieren property usw.

diese stattdessen tun:

import QtQuick 2.0 
import QtQuick.Window 2.0 

Window { 
    width: 600 
    height: 400 
    visible: true 

    Component.onCompleted: { 
     anim.accessToNum.target = rect 
     anim.accessToNum.property = "x" 
     anim.accessToNum.to = 100 
     anim.accessToNum.duration = 1000 
     anim.start() // or: anim.running = true 
    } 

    Rectangle { 
     id: rect 
     width: 50 
     height: 50 
     color: "red" 
    } 
    SequentialAnimation { 
     id: anim 
     property var accessToNum: num 
     NumberAnimation { 
      id: num 
     } 
    } 
} 

Unrelated Tipp: Verwendung alias anstelle von var, wenn möglich; es ist etwas billiger:

property alias accessToNum: num 
+1

Wow, das hat funktioniert und vielen Dank für Ihre schnelle Antwort! Ich hatte zuvor in meinem Codebeispiel die Datei anim.start() hinzugefügt, aber die Eigenschaft running: true wurde deklariert. Du hast mir Schmerzen erspart! Lol alles Gute Mitch. – LeeH

+0

@ldigital Bitte überprüfen Sie diese Antwort als akzeptiert :) –

Verwandte Themen