对于有些QML应用来说,震动是非常重要的一个功能。特别是对一下游戏来说。那么我们怎么在QML应用中震动呢?
我们官方有一个API HapticsEffect,这个API的功能就是让我们的应用来震动的。使用这个API非常容易:
import QtQuick 2.0
import Ubuntu.Components 1.1
import QtFeedback 5.0
/*!
\brief MainView with a Label and Button elements.
*/
MainView {
// objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView"
// Note! applicationName needs to match the "name" field of the click manifest
applicationName: "vibration.liu-xiao-guo"
/*
This property enables the application to change orientation
when the device is rotated. The default is false.
*/
//automaticOrientation: true
// Removes the old toolbar and enables new features of the new header.
useDeprecatedToolbar: false
width: units.gu(100)
height: units.gu(75)
Page {
title: i18n.tr("vibration")
HapticsEffect {
id: rumbleEffect
attackIntensity: 0.0
attackTime: 250
intensity: 1.0
duration: 100
fadeTime: 250
fadeIntensity: 0.0
}
Column {
spacing: units.gu(1)
anchors {
margins: units.gu(2)
fill: parent
}
Button {
objectName: "button"
width: parent.width
text: i18n.tr("Vibrate me!")
onClicked: {
rumbleEffect.start(); // plays a rumble effect
}
}
}
}
}
这里我们import了我们需要的库:
import QtFeedback 5.0
然后,实例化我们的HapticsEffect:
HapticsEffect {
id: rumbleEffect
attackIntensity: 0.0
attackTime: 250
intensity: 1.0
duration: 100
fadeTime: 250
fadeIntensity: 0.0
}
当我们按下我们的按钮时,我们及开始震动了。当然这个必须是在手机上才可以测试到。