在代码中我定义了State
,Transition
和RotationAnimation
。
在发生属性更改后,即在rotation
设置为360
之后,onClicked
处理程序将呈现静音状态,并且在后续{{1}之后将永远不再播放动画点击。
这是我目前的代码:
MouseArea
答案 0 :(得分:0)
State
是一种表示给定Item
的不同属性配置的方法。每个State
都有其唯一的值集,用于在特定Item
内定义的属性。
Transition
是一种在当前Item
更改到另一个State
时向State
添加动画的方法。它们可以以受限制的方式应用,即仅当Item
从特定State
更改为另一个State
和from
属性时才会应用),或者它们可以应用于全球"对于每个state
更改。无论如何,需要进行更改。
在您的代码中,rotated
设置为State
,然后重新分配Transition
,以便不再进行进一步的更改。因此,对rotated
state
或默认空名State
的其他Transition
没有空间。
无论如何,有多种方法可以应用动画,包括但不限于to
,import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.1
ApplicationWindow {
width: 250
height: 250
visible: true
Image{
id: logo
anchors.centerIn: parent
source: "https://yt3.ggpht.com/-YiF6y9OXDQ8/AAAAAAAAAAI/AAAAAAAAAAA/oFNmJLmzqDA/s100-c-k-no/photo.jpg"
width: 100
height: 100
RotationAnimation {
id: rotate
target:logo
property: "rotation"
from: 0
to: 360
duration: 1000
direction: RotationAnimation.Clockwise
}
MouseArea {
id: area
anchors.fill: parent
onClicked: {
rotate.start() // animation plays here!
// your code
}
}
}
}
s,Behavior
s和using predefined targets。在我看来,后者是这种具体案例的方法。这是一个重新访问的代码版本,点击鼠标即触发动画:
String pattern = "[\\(?=\\)]";
String b = "(079)25894029".trim();
String c[] = b.split(pattern,-1);
for (int a = 0; a < c.length; a++)
System.out.println("c[" + a + "]::->" + c[a] + "\nLength::->"+ c[a].length());