Premiär! Fyndchans i SweClockers Månadens Drop

Interactive Example , Mouse Lock (Pointer Lock) i chrome

Permalänk
Avstängd

Interactive Example , Mouse Lock (Pointer Lock) i chrome

--

Hej.
Jag behöver använda Mouse Lock (Pointer Lock) i chrome.
http://www.chromium.org/developers/design-documents/mouse-loc...

I denna länk finns en "Interactive Example" knapp som ger koordinater från mouse lock.
http://www.html5rocks.com/en/tutorials/pointerlock/intro/

Men jag hittar inte skript koden i webbsidan så att jag kan göra en likadan knapp i min sida.

Kan någon här hitta skriptet i html5rocks webbsidan för "Interactive Example" knappen och skriva in den här som svar?

Eller kan någon förklara hur jag ska göra för att få en "Interactive Example" knapp i min hemsida?

MagI

--

Visa signatur

"Frågan är om tillståndet i världen någonsin kommer att bli beviljat"
Är Svensk Mästare i BlockOut2 på level: Out of control , https://blockout.nu

Permalänk
Medlem
Skrivet av Magi55:

--

Hej.
Jag behöver använda Mouse Lock (Pointer Lock) i chrome.
http://www.chromium.org/developers/design-documents/mouse-loc...

I denna länk finns en "Interactive Example" knapp som ger koordinater från mouse lock.
http://www.html5rocks.com/en/tutorials/pointerlock/intro/

Men jag hittar inte skript koden i webbsidan så att jag kan göra en likadan knapp i min sida.

Kan någon här hitta skriptet i html5rocks webbsidan för "Interactive Example" knappen och skriva in den här som svar?

Eller kan någon förklara hur jag ska göra för att få en "Interactive Example" knapp i min hemsida?

MagI

--

https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock?...

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Avstängd

-

Jag provade den men fick en svart sida .
Kan någon se i webbsidan hur scriptet ser ut för "Interactive Example" knappen?
Hur hittar man det i webbsidan?
Jag hittar det inte..

MagI
-

Visa signatur

"Frågan är om tillståndet i världen någonsin kommer att bli beviljat"
Är Svensk Mästare i BlockOut2 på level: Out of control , https://blockout.nu

Permalänk
Medlem
Skrivet av Magi55:

-

Jag provade den men fick en svart sida .
Kan någon se i webbsidan hur scriptet ser ut för "Interactive Example" knappen?
Hur hittar man det i webbsidan?
Jag hittar det inte..

MagI
-

Du får ju göra om den så den passar dig.

Här är ett exempel. Fungerar endast i Chrome då Chrome är den enda webbläsaren som har implementerat Mouse Lock för icke-fullscreenbruk. Koden tagen från Mozillas dokumentation men jag har strippat bort extrakod för fullscreen samt lagt in lite logik för knappen när den ska byta texten på knappen.

<button onclick="lockPointer();" id='lockButton'>Lås musen</button> <div id="pointer-lock-element"></div> <script> // Note: at the time of writing, only Mozilla and WebKit support Pointer Lock. // The element we'll make fullscreen and pointer locked. var elem; document.addEventListener("mousemove", function(e) { if (elem != null) { var movementX = e.movementX || e.mozMovementX || e.webkitMovementX || 0, movementY = e.movementY || e.mozMovementY || e.webkitMovementY || 0; // Print the mouse movement delta values document.getElementById('lockButton').innerHTML = "movementX=" + movementX +" - movementY=" + movementY; } }, false); function pointerLockChange() { if (document.mozPointerLockElement === elem || document.webkitPointerLockElement === elem) { //console.log("Pointer Lock was successful."); } else { elem = null; document.getElementById('lockButton').innerHTML = "Lås musen"; } } document.addEventListener('pointerlockchange', pointerLockChange, false); document.addEventListener('mozpointerlockchange', pointerLockChange, false); document.addEventListener('webkitpointerlockchange', pointerLockChange, false); function lockPointer() { elem = document.getElementById("pointer-lock-element"); elem.requestPointerLock = elem.requestPointerLock || elem.mozRequestPointerLock || elem.webkitRequestPointerLock; elem.requestPointerLock(); } </script>

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Avstängd

--

Fungerade kanon.
Tack.

Varför fick jag en helt svart sida med originalkoden från
https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock?...
?

Ska jag kanske lägga webbsidan i originalkoden på något sätt för att få fullscreen när jag klickar på knappen?
Jag skulle vilja prova fullscreen när jag klickar på knappen och undrar om någon vet hur man fixar originalkoden.
Använder bara chrome.

MagI
-

Visa signatur

"Frågan är om tillståndet i världen någonsin kommer att bli beviljat"
Är Svensk Mästare i BlockOut2 på level: Out of control , https://blockout.nu

Permalänk
Medlem
Skrivet av Magi55:

--

Fungerade kanon.
Tack.

Varför fick jag en helt svart sida med originalkoden från
https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock?...
?

Ska jag kanske lägga webbsidan i originalkoden på något sätt för att få fullscreen när jag klickar på knappen?
Jag skulle vilja prova fullscreen när jag klickar på knappen och undrar om någon vet hur man fixar originalkoden.
Använder bara chrome.

MagI
-

Enligt standarden så krävs det att objektet man låser för Pointer Lock måste köras i fullscreen. Chrome tillåter däremot att man kör det utan fullscreen. Varför skärmen blir svart är för att Pointer Lock initierar det låsta elementet med ett standardutseende. Om du sätter en annan bakgrundsfärg på "pointer-lock-element"-elementet så kommer "skärmen" få den färgen istället, i exempelkoden hos Mozilla.

Jag förstår inte riktigt vad du menar med ditt andra stycke. Vad hindrar dig från att lägga in koden nu? Du skrev i ett tidigare inlägg att skärmen bara blev svart vilket jag tolkade som att du hade fått exempelkoden att fungera.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Avstängd
Skrivet av Leedow:

Enligt standarden så krävs det att objektet man låser för Pointer Lock måste köras i fullscreen. Chrome tillåter däremot att man kör det utan fullscreen. Varför skärmen blir svart är för att Pointer Lock initierar det låsta elementet med ett standardutseende. Om du sätter en annan bakgrundsfärg på "pointer-lock-element"-elementet så kommer "skärmen" få den färgen istället, i exempelkoden hos Mozilla.

Jag förstår inte riktigt vad du menar med ditt andra stycke. Vad hindrar dig från att lägga in koden nu? Du skrev i ett tidigare inlägg att skärmen bara blev svart vilket jag tolkade som att du hade fått exempelkoden att fungera.

Jag har tex denna webbsida.

https://code.google.com/p/cellbots/source/browse/trunk/androi...

Din justerade kod fungerar utmärkt.
Den ger min hemsida med en ruta som visar delta x/y när knapp klickats.
Men om jag lägger in originalkoden får jag en svart sida.
Hur kan jag få fullscreen med webbsidan och en ruta som visar delta x/y ?

Ska jag namnge min webbsida med en <div id= i head eller body och sedan byta ut
<div id="pointer-lock-element"></div>
till
<div id="min webbsida"></div> ?

MagI

Visa signatur

"Frågan är om tillståndet i världen någonsin kommer att bli beviljat"
Är Svensk Mästare i BlockOut2 på level: Out of control , https://blockout.nu

Permalänk
Medlem
Skrivet av Magi55:

Jag har tex denna webbsida.

https://code.google.com/p/cellbots/source/browse/trunk/androi...

Din justerade kod fungerar utmärkt.
Den ger min hemsida med en ruta som visar delta x/y när knapp klickats.
Men om jag lägger in originalkoden får jag en svart sida.
Hur kan jag få fullscreen med webbsidan och en ruta som visar delta x/y ?

Ska jag namnge min webbsida med en <div id= i head eller body och sedan byta ut
<div id="pointer-lock-element"></div>
till
<div id="min webbsida"></div> ?

MagI

Här är ett exempel som visar en grå bakgrund istället för svart.
Högst upp finns det en grå(are) box som ritar ut koordinaterna i gul text
Boxen visas och uppdateras endast om pointer lock är aktivt
Jag har kommenterat varje rad som jag har lagt till med //NY
HTML-koden får väl också anses vara ny.
Koden fungerar i Firefox och Chrome då det är fullscreen som körs. Chrome centrerar boxen men inte Firefox. Måste vara något med Pointer Lock som sätter någon template kod för Pointer Lock.

<button onclick="lockPointer();">Lock it!</button> <div id="pointer-lock-element" style="background:#ccc;"> <div id="coords" style="background:#666;display:none;color: #ffff00;"> </div> </div> <script> // Note: at the time of writing, only Mozilla and WebKit support Pointer Lock. // The element we'll make fullscreen and pointer locked. var elem; document.addEventListener("mousemove", function(e) { if (elem != null) { //NY var movementX = e.movementX || e.mozMovementX || e.webkitMovementX || 0, movementY = e.movementY || e.mozMovementY || e.webkitMovementY || 0; // Print the mouse movement delta values document.getElementById('coords').innerHTML = "movementX=" + movementX + " - movementY=" + movementY; } //NY }, false); function fullscreenChange() { if (document.webkitFullscreenElement === elem || document.mozFullscreenElement === elem || document.mozFullScreenElement === elem) { // Older API upper case 'S'. // Element is fullscreen, now we can request pointer lock elem.requestPointerLock = elem.requestPointerLock || elem.mozRequestPointerLock || elem.webkitRequestPointerLock; elem.requestPointerLock(); } } document.addEventListener('fullscreenchange', fullscreenChange, false); document.addEventListener('mozfullscreenchange', fullscreenChange, false); document.addEventListener('webkitfullscreenchange', fullscreenChange, false); function pointerLockChange() { if (document.mozPointerLockElement === elem || document.webkitPointerLockElement === elem) { console.log("Pointer Lock was successful."); document.getElementById('coords').style.display = 'block'; //NY } else { console.log("Pointer Lock was lost."); document.getElementById('coords').style.display = 'none'; //NY } } document.addEventListener('pointerlockchange', pointerLockChange, false); document.addEventListener('mozpointerlockchange', pointerLockChange, false); document.addEventListener('webkitpointerlockchange', pointerLockChange, false); function pointerLockError() { console.log("Error while locking pointer."); } document.addEventListener('pointerlockerror', pointerLockError, false); document.addEventListener('mozpointerlockerror', pointerLockError, false); document.addEventListener('webkitpointerlockerror', pointerLockError, false); function lockPointer() { elem = document.getElementById("pointer-lock-element"); // Start by going fullscreen with the element. Current implementations // require the element to be in fullscreen before requesting pointer // lock--something that will likely change in the future. elem.requestFullscreen = elem.requestFullscreen || elem.mozRequestFullscreen || elem.mozRequestFullScreen || // Older API upper case 'S'. elem.webkitRequestFullscreen; elem.requestFullscreen(); } </script>

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Avstängd

--

Man kan nog hitta ett script för din första justerade kod som samtidigt ger fullscreen av hemsidan med mouse/pointer lock aktiverat med delta x/y koordinater i ruta.
Jag blir lika glad av att få respons från snälla kodare varje gång , som de tar sig tid att berätta / lära ut kodning.
Jag tackat så väldigt mycket för att du tog dig tid att hjälpa mig.

MagI
--

Visa signatur

"Frågan är om tillståndet i världen någonsin kommer att bli beviljat"
Är Svensk Mästare i BlockOut2 på level: Out of control , https://blockout.nu