2015-03-03 69 views
0

我试图了解行为的功能,方法是在属性发生更改时动画一个小的Rectangle。 请看下面的例子:使用数字动画和行为进行动画制作

import QtQuick 2.4 
import QtQuick.Controls 1.2 

Item { 
    width: 600 
    height: 80 

    Rectangle { 
     id: rect 
     color: "red" 
     width: 20 
     height: 20 

     property int xval: 0 

     Behavior on xval { 
      NumberAnimation { 
       target: rect 
       property: "x" 
       to: rect.xval 
       duration: 2000 
       easing.type: Easing.InOutQuad 
      } 
     } 
    } 

    Button { 
     anchors.bottom: parent.bottom 
     onClicked: { rect.xval=250 } 
    } 
} 

在这里,我想对动画按钮单击该项目RECTX财产。但它不具有生命力。现在,如果你更换

to: rect.xval 

to: 400 

的矩形的动画按钮单击预期。我想要做的就是使用用户设置的值为Rectangle设置动画。我错过了什么吗?

回答

2

您不需要额外的属性来动画属性。 Behavior on foo只要改变其值并使其成为内部动画的隐含属性,就会为foo生成动画。 您的代码可以简单地为

Item { 
    width: 600 
    height: 80 

    Rectangle { 
     id: rect 
     color: "red" 
     width: 20 
     height: 20 

     Behavior on x { 
      NumberAnimation { 
       duration: 2000 
       easing.type: Easing.InOutQuad 
      } 
     } 
    } 

    Button { 
     anchors.bottom: parent.bottom 
     onClicked: { rect.x=250 } 
    } 
} 
+0

似乎我感到困惑。谢谢你的回答:) – astre 2015-03-04 05:13:24

相关问题