QML Animation

Types of Animations 主要有以下几种动画:

Value Source / Behavior
When an animation is used as a value source or in a Behavior, the default target and property name to be animated can both be inferred.
    Rectangle {
        id: theRect
        width: 100; height: 100
        color: Qt.rgba(0,0,1)

//Animations as Property Value Sources
        NumberAnimation on x { to: 500; loops: Animation.Infinite } //animate theRect's x property

//Behavioral Animations
        Behavior on y { NumberAnimation {} } //animate theRect's y property
    }
Transition
When used in a transition, a property animation is assumed to match all targets but no properties. In practice, that means you need to specify at least the properties in order for the animation to do anything.
    Rectangle {
        id: theRect
        width: 100; height: 100
        color: Qt.rgba(0,0,1)
        Item { id: uselessItem }
        states: State {
            name: "state1"
            PropertyChanges { target: theRect; x: 200; y: 200; z: 4 }
            PropertyChanges { target: uselessItem; x: 10; y: 10; z: 2 }
        }
        transitions: Transition {
            //animate both theRect's and uselessItem's x and y to their final values
            NumberAnimation { properties: "x,y" }

            //animate theRect's z to its final value
            NumberAnimation { target: theRect; property: "z" }
        }
    }
Standalone
When an animation is used standalone, both the target and property need to be explicitly specified.
    Rectangle {
        id: theRect
        width: 100; height: 100
        color: Qt.rgba(0,0,1)
        //need to explicitly specify target and property
        NumberAnimation { id: theAnim; target: theRect; property: "x" to: 500 }
        MouseArea {
            anchors.fill: parent
            onClicked: theAnim.start()
        }
    }

 

Animations in a Signal Handler:其实也是standalone的一种,需要指定target和property
An animation can be created within a signal handler to be triggered when the signal is received. For example:
import Qt 4.7

Rectangle {
     id: rect
     width: 100; height: 100
     color: "red"

     MouseArea {
         anchors.fill: parent
         onClicked: PropertyAnimation { target: rect; properties: "x,y"; to: 50; duration: 1000 }
     }
}

 

Animation Elements: 动画元素:

Property Animation Elements

PropertyAnimation,It is inherited by NumberAnimation, ColorAnimation, RotationAnimation and Vector3dAnimation

Grouping Animations

ParallelAnimation or SequentialAnimation.

Other Animation Elements
In addition, QML provides several other elements useful for animation:
PauseAnimation: enables pauses during animations
ScriptAction: allows JavaScript to be executed during an animation, and can be used together with StateChangeScript to reused existing scripts
PropertyAction: changes a property immediately during an animation, without animating the property change
See their respective documentation pages for more details.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值