1

奇妙な動作を示し続けているため (および QMLViewer をクラッシュさせているため)。

コード:

import QtQuick 1.1

Rectangle {
    width: 800; height: 600

    Rectangle {
        width: 60; height: 60
        x: rect1.x - 5; y: rect1.y - 5
        color: "green"

        property NumberAnimation anim: NumberAnimation { 
            id: animId; duration: 2000 
        }

        Behavior on x {
            animation: animId
        }
        Behavior on y {
            animation: animId
        }
    }

    Rectangle {
        id: rect1
        width: 50; height: 50
        color: "red"
    }

    focus: true

    Keys.onRightPressed: rect1.x = rect1.x + 100
    Keys.onLeftPressed:  rect1.x = rect1.x - 100
    Keys.onUpPressed:    rect1.y = rect1.y - 100
    Keys.onDownPressed:  rect1.y = rect1.y + 100
}

プロパティに注意してくださいanim。その値は、明らかに囲んでいる要素の子ではありません。

これにより、QML メモリの管理と所有権の問題が生じる可能性があります (再び)。

4

1 に答える 1

2

QML 要素がそのインスタンスを他Behaviorのユーザーと共有できるようには見えません。それぞれanimationを定義すると、正しく機能するはずです。NumberAnimationBehavior

Rectangle {
    width: 60; height: 60
    x: rect1.x - 5; y: rect1.y - 5
    color: "green"

    Behavior on x {
        NumberAnimation {
            duration: 2000
        }
    }
    Behavior on y {
        NumberAnimation {
            duration: 2000
        }
    }
}
于 2012-07-04T15:55:17.900 に答える