2016-12-18 3 views
0

Gibt es eine Möglichkeit, Rechtsklick-Ereignis ("conferencemenu") zu identifizieren & Scroll-Ereignisse, während Zeigersperre API aktiviert ist? Ich versuche ein browserbasiertes 3D-Spiel zu erstellen, in dem der Spieler verschiedene Aktivitäten ausführen kann, indem er mit der linken Maustaste klickt, mit der rechten Maustaste klickt, mit der mittleren Maustaste klickt und scrollt - während der Zeiger gesperrt ist.Identifizieren Sie Mausereignisse während requestPointerLock

index.html

<body><button id="lock">Start game</button</body> 

app.js

$("#lock").on("click", function(e) { 
    lockPointer(); // invokes the requestPointerLock API 
    e.stopPropagation(); 
}); 

// this works perfectly 
$("body").on("click", function(e) { 
    // do stuff on left click 
}); 

// this does not work 
$("body").on("contextmenu", function(e) { 
    // do stuff on right click 
}); 

Antwort

1

Für rechts klicken Sie mousedown oder mouseup Ereignis verwenden können, funktioniert es mit requestPointerLock

$('body').on('mousedown', function(e) { 
    if (e.which === 1) { 
     // left button 
    } else if (e.which === 2) { 
     // middle button 
    } else if (e.which === 3) { 
     // right button 
    } 
}); 

zum Scrollen Sie wheel Ereignis verwenden können:

$('body').on('wheel', function(e) { 
    var dx = e.originalEvent.deltaX; 
    var dy = e.originalEvent.deltaY; 

    if (dy < 0) { 
     // scroll up 
    } else if (dy > 0) { 
     // scroll down 
    } 

    if (dx < 0) { 
     // scroll left (some mice support this) 
    } else if (dx > 0) { 
     // scroll right (some mice support this) 
    } 
}); 
+0

Dies scheint meine Anforderungen zu genügen. Danke vielmals! :-) – gdebojyoti

Verwandte Themen