Put the timing code back in.
Occasionally gestures were fired twice. This helps prevent that. modified: plugin/leap/leap.js
This commit is contained in:
parent
dbcbc7aa69
commit
32865b43f8
@ -25,12 +25,14 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re
|
|||||||
leapConfig = Reveal.getConfig().leap,
|
leapConfig = Reveal.getConfig().leap,
|
||||||
leapDOM = document.createElement('div'),
|
leapDOM = document.createElement('div'),
|
||||||
body = document.body,
|
body = document.body,
|
||||||
|
lastGesture = 0,
|
||||||
config = {
|
config = {
|
||||||
naturalSwipe : true,
|
naturalSwipe : true,
|
||||||
pointerDefault : 15,
|
pointerDefault : 15,
|
||||||
pointerColor : '#00aaff',
|
pointerColor : '#00aaff',
|
||||||
pointerOpacity : 0.75
|
pointerOpacity : 0.75
|
||||||
};
|
},
|
||||||
|
now;
|
||||||
|
|
||||||
// Merge user defined settings with defaults
|
// Merge user defined settings with defaults
|
||||||
if ( leapConfig ) {
|
if ( leapConfig ) {
|
||||||
@ -48,6 +50,12 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re
|
|||||||
body.appendChild(leapDOM);
|
body.appendChild(leapDOM);
|
||||||
|
|
||||||
controller.on('frame', function (frame) {
|
controller.on('frame', function (frame) {
|
||||||
|
// Timing code to rate limit gesture execution
|
||||||
|
now = new Date().getTime();
|
||||||
|
|
||||||
|
if( lastGesture === 0 ) {
|
||||||
|
lastGesture = now;
|
||||||
|
}
|
||||||
|
|
||||||
// Pointer code
|
// Pointer code
|
||||||
if ( frame.hands.length === 1 && frame.fingers.length === 1 ) {
|
if ( frame.hands.length === 1 && frame.fingers.length === 1 ) {
|
||||||
@ -73,13 +81,13 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Gestures
|
// Gestures
|
||||||
if ( frame.gestures.length > 0 ) {
|
if ( (now - lastGesture) > 500 && frame.gestures.length > 0 ) {
|
||||||
var gesture = frame.gestures[0];
|
var gesture = frame.gestures[0];
|
||||||
|
|
||||||
// One hand gestures
|
// One hand gestures
|
||||||
if( frame.hands.length === 1 ) {
|
if( frame.hands.length === 1 ) {
|
||||||
// Swipe gestures. 2+ fingers.
|
// Swipe gestures. 2+ fingers.
|
||||||
if ( frame.fingers.length > 1 && gesture.speed > 1000 && gesture.state === 'start' && gesture.type === 'swipe' ) {
|
if ( frame.fingers.length > 1 && gesture.speed > 1000 && gesture.type === 'swipe' ) {
|
||||||
var x = gesture.direction[0],
|
var x = gesture.direction[0],
|
||||||
y = gesture.direction[1];
|
y = gesture.direction[1];
|
||||||
|
|
||||||
@ -90,6 +98,8 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re
|
|||||||
} else {
|
} else {
|
||||||
config.naturalSwipe ? Reveal.right() : Reveal.left();
|
config.naturalSwipe ? Reveal.right() : Reveal.left();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lastGesture = now;
|
||||||
// Up/down swipe gestures
|
// Up/down swipe gestures
|
||||||
} else {
|
} else {
|
||||||
if ( y > 0 ) {
|
if ( y > 0 ) {
|
||||||
@ -97,6 +107,8 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re
|
|||||||
} else {
|
} else {
|
||||||
config.naturalSwipe ? Reveal.up() : Reveal.down();
|
config.naturalSwipe ? Reveal.up() : Reveal.down();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lastGesture = now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Two hand gestures
|
// Two hand gestures
|
||||||
@ -105,6 +117,8 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re
|
|||||||
if ( gesture.direction[1] > 0 ) {
|
if ( gesture.direction[1] > 0 ) {
|
||||||
Reveal.toggleOverview();
|
Reveal.toggleOverview();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lastGesture = now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user