QML实现反弹动画

版权声明:本文系作者原创。未经许可,不得转载。

   
import QtQuick 2.0
Rectangle {
    id: area
    width: 700
    height: width
    color: "#00000000"
    Image {
        id: img
        x: parent.width/2-width/2
        y: parent.height/2-height/2
        width: 350
        height: width
        source: "power_twinkle.png"
        function moveCenter(center) {
            img.x = center.x - width/2;
            img.y = center.y - height/2;
        }
        ParallelAnimation {
            id: goToCenterAnimation
            NumberAnimation {
                target: img; properties: "x"
                //此处必须指定id
                to: area.width/2-img.width/2
                  //反弹效果主要靠这个选项
                duration: 500; easing.type: Easing.OutBounce 
            }
            NumberAnimation {
                target: img; properties: "y"
                //此处必须指定id
                to: area.height/2-img.height/2
                  //反弹效果主要靠这个选项
                duration: 500; easing.type: Easing.OutBounce   
            }
        }
        function goBackAnimation () {
            goToCenterAnimation.start();
        }
    }
    MouseArea {
        id: areamouse
        anchors.fill: parent
        onPositionChanged: {
            img.moveCenter(mouse);
        }
        onReleased: {
            img.goBackAnimation();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值