我正在尝试创建一个具有某种布朗运动的盒子(即它以随机方式移动),同时用户可以与它进行交互。
交互部分可以工作,并在下面缩短以调整下面的高度。
browian部分不起作用 - 我在运行时收到两个警告:
[W] unknown:29 - file:.../EvasiveButton.qml:29:76: Unable to assign int to QEasingCurve
[W] unknown:29 - file:.../EvasiveButton.qml:29: ReferenceError: randomNumber is not defined
[W] unknown:24 - file:.../EvasiveButton.qml:24:54: Unable to assign int to QEasingCurve
所以看来我至少有一个问题是我的函数randomNumber无法识别。但是把它移到其他地方似乎并没有帮助。
其次,QEasingCurve的注释警告来自哪里?
代码:
import QtQuick 2.0
import QtQuick.Window 2.0
Rectangle {
width: Screen.width
height: Screen.height
color: "black"
focus: true
Rectangle {
x: 60
y: 60
width: 100
height: 100
color: "red"
MouseArea {
anchors.fill: parent
onClicked: parent.height += 50
}
Behavior on height {
NumberAnimation { duration: 200; easing: Easing.OutInQuint}
}
SequentialAnimation on x {
id: brownianMotionX
loops: Animation.Infinite
NumberAnimation {to: 40+randomNumber(); duration: 200; easing: Easing.OutInQuint}
}
function randomNumber() {
return Math.random() * 10 - 5;
}
}
}
感谢您的建议!
答案 0 :(得分:2)
randomNumber()
不可用。要么将其向上移动以便在使用之前声明,要么将id
提供给内部Rectangle
以明确调用它。
缓和错误是因为您尝试将缓动曲线样式分配给完整的QEasingCurve
- 这样做不起作用。因此,具体设置曲线样式:
easing.type: Easing.OutInQuint