我一直在使用 this文章(和其他一些文章)尝试在我的应用程序中实现手势识别,它确实有效。但是,我想做的是检测多个手势;例如,滑动和触摸。我似乎无法确定 MouseUp
事件是由手势结束引起的,还是由单次触摸引起的。
function processUpEvent(e) {
lastElement = e.currentTarget;
gestureRecognizer.processUpEvent(e.currentPoint);
processTouchEvent(e.currentPoint);
}
目前发生的是它同时处理了这两者。如何检测用户是否已“松开”屏幕进行滑动或触摸?
编辑:
var recognizer = new Windows.UI.Input.GestureRecognizer();
recognizer.gestureSettings = Windows.UI.Input.GestureSettings.manipulationTranslateX
recognizer.addEventListener('manipulationcompleted', function (e) {
var dx = e.cumulative.translation.x
//Do something with direction here
});
var processUp = function (args) {
try {
recognizer.processUpEvent(args.currentPoint);
}
catch (e) { }
}
canvas.addEventListener('MSPointerDown', function (args) {
try {
recognizer.processDownEvent(args.currentPoint);
}
catch (e) { }
}, false);
canvas.addEventListener('MSPointerMove', function (args) {
try {
recognizer.processMoveEvents(args.intermediatePoints);
}
catch (e) { }
}, false);
canvas.addEventListener('MSPointerUp', processUp, false);
canvas.addEventListener('MSPointerCancel', processUp, false);
所以我需要同时处理 processUp
和 manipulationcompleted
,但要处理其中一个。
最佳答案
你可以在codeSHOW 看看我的“输入”演示。只需安装 codeSHOW 应用程序 (http://aka.ms/codeshowapp) 并查看指针输入演示并“查看代码”或直接转到 source code on CodePlex . 希望对您有所帮助。
关于javascript - WinJS gestureRecognizer - 如何捕获多个手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342189/