J'ai utilisé l'article this (et quelques autres) pour essayer d'implémenter une reconnaissance gestuelle dans mon application, et cela fonctionne. Cependant, ce que je veux faire est de détecter plusieurs gestes; par exemple, un balayage et un contact. Ce que je ne semble pas pouvoir faire est d'établir si l'événement MouseUp
est causé par la fin d'un geste, ou par un simple contact.WinJS gestureRecognizer - comment piéger plusieurs gestes
function processUpEvent(e) {
lastElement = e.currentTarget;
gestureRecognizer.processUpEvent(e.currentPoint);
processTouchEvent(e.currentPoint);
}
Ce qui se passe actuellement est-il traité à la fois. Comment puis-je détecter si l'utilisateur a «lâché» l'écran pour un glissement ou un contact?
EDIT:
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);
donc je dois gérer à la fois processUp
et manipulationcompleted
, mais l'un ou l'autre.
Je ne suis pas sûr que cela répond à ma question. Bien que cela couvre le glisser, j'ai besoin de capturer la direction. J'ai mis à jour ma question avec quelques détails plus spécifiques. –