2016-05-12 32 views
0

我不知道是否可以嘗試做什麼,雖然在我看來它應該是...我試圖使用動畫對象順序或平行動畫。如果數字動畫屬性在其自身內部正常設置(如文檔建議),但是我不想將數字動畫對象硬編碼爲單個設置/對象,我更喜歡將順序動畫設置爲頂級,從而訪問數字動畫對象(在順序動畫中)從其他地方...有趣的是,當我做了所需的設置,數字動畫對象上的控制檯輸出顯示一切設置,但仍然沒有動畫。這是我到目前爲止:如果數字動畫屬性在qml中的其他地方定義,對象將不會動畫

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} 
} 

謝謝。

回答

2

您對動畫

running: true 

集,所以它會立即開始動畫沒有targetproperty

而是執行此操作:

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 
     } 
    } 
} 

無關提示:使用如果可能的話,代替var;代替var;代替var。它稍微便宜:

property alias accessToNum: num 
+1

哇,工作,並非常感謝您的快速響應!我在我的代碼示例中添加了anim.start(),但同時聲明瞭running:true屬性。你已經痛過我了!大聲笑所有最好的米奇。 – LeeH

+0

@ldigital請檢查這個答案爲接受:) –