これはバグである可能性がありますが、以下をお読みください。
次のコードでは、フリップ可能オブジェクトがフリップする (ただし反転する) ときに、フリップ可能オブジェクトの前面にあるマウス領域がアクティブなままであり、背面から一部のマウス領域を引き継いでいます。
import QtQuick 2.0
Rectangle {
height: 500
width: 500
Flipable {
id: flipable
anchors.fill:parent
property bool flipped: false
front: Rectangle{
color: "black"
anchors.fill: parent
Rectangle {
color:"darkgrey"
height: parent.height / 2
width: parent.width / 2
MouseArea {
anchors.fill: parent
onClicked: flipable.flip()
}
}
}
back: Rectangle {
id: yellow
color: "yellow"
anchors.fill: parent
MouseArea {
anchors.fill: parent
onClicked: yellow.color = "green"
}
}
transform: Rotation {
id: rotation
origin.x: flipable.width/2
origin.y: flipable.height/2
axis.x: 0; axis.y: 1; axis.z: 0 // set axis.y to 1 to rotate around y-axis
angle: 0 // the default angle
}
states: State {
name: "back"
PropertyChanges { target: rotation; angle: 180 }
when: flipable.flipped
}
transitions: Transition {
NumberAnimation { target: rotation; property: "angle"; duration: 400 }
}
function flip () {
flipped = !flipped
}
}
}
灰色の領域を押すとページがめくれ、もう一度押すと (現在は右側の後ろにあります)、再びめくります。正しい動作は、右上隅をクリックしても黄色の四角が緑色になることです。
ありがとう!