Spostare il puntatore del mouse su una posizione specifica?

Sto costruendo un gioco HTML5 e sto cercando di mettere il cursore del mouse su un certo controllo su un evento specifico in modo che lo spostamento in una direzione specifica abbia sempre lo stesso risultato. È ansible?

Grande domanda. Questo è davvero qualcosa che manca all’API del browser Javascript. Sto anche lavorando a un gioco WebGL con il mio team, e abbiamo bisogno di questa funzionalità. Ho aperto un problema sul bugzilla di Firefox in modo che possiamo iniziare a parlare della possibilità di avere un’API per consentire il blocco del mouse. Questo sarà utile per tutti gli sviluppatori di giochi HTML5 / WebGL disponibili.

Se ti va, vieni e lascia un commento con il tuo feedback, e svalota il problema:

https://bugzilla.mozilla.org/show_bug.cgi?id=630979

Grazie!

Non è ansible spostare il mousepointer con javascript.

Pensa solo alle implicazioni per un secondo, se puoi;)

  1. L’utente pensa: “hey vorrei fare clic su questo link”
  2. Javascript sposta mousecursor su un altro link
  3. L’utente fa clic sul link sbagliato e scarica inavvertitamente il malware che formatta il suo c-drive e mangia le sue caramelle
  1. Esegui un piccolo server Web sul computer client. Può essere una piccola cosa da 100kb. Uno script Python / Perl, ecc.
  2. Include un piccolo eseguibile C precompilato che può spostare il mouse.
  3. Eseguilo come uno script CGI tramite una semplice chiamata http, AJAX, qualunque sia – con le coordinate su cui vuoi spostare il mouse, ad esempio:

    http://localhost:9876/cgi/mousemover?x=200&y=450

PS: Per qualsiasi problema, ci sono centinaia di scuse sul perché e come – non può, e non dovrebbe – essere fatto .. Ma in questo universo infinito, è davvero solo una questione di determinazione – quanto a se tu lo farà accadere.

Immagino che potresti portare il cursore del mouse su una determinata area dello schermo se non hai usato il cursore del mouse reale (sistema).

Ad esempio, è ansible creare un’immagine per agire al posto del cursore, gestire un evento che rilevando il mouseenter nella scena, impostare lo stile sul cursore di sistema su ‘none’ ( sceneElement.style.cursor = 'none' ), quindi porterebbe su un elemento immagine nascosto che agisce come un cursore per essere ovunque con la scena in base a una traslazione predefinita di un asse / delimitatore.

In questo modo, indipendentemente dal modo in cui hai spostato il cursore reale, il tuo metodo di traduzione manterrà il cursore dell’immagine ovunque ti serva.

edit: un esempio in jsFiddle usando una rappresentazione dell’immagine e il movimento forzato del mouse

È ansible rilevare la posizione del puntatore del mouse e quindi spostare la pagina Web (con la posizione del corpo relativa) in modo da posizionare il mouse su ciò che si desidera che facciano clic.

Per un esempio è ansible incollare questo codice nella pagina corrente nella console del browser (e aggiornare in seguito)

 var upvote_position = $('#answer-12878316').position(); $('body').mousemove(function (event) { $(this).css({ position: 'relative', left: (event.pageX - upvote_position.left - 22) + 'px', top: (event.pageY - upvote_position.top - 35) + 'px' }); }); 

Non puoi spostare un mouse ma puoi bloccarlo. Nota: è necessario chiamare requestPointerLock nell’evento click.

Piccolo esempio:

 var canvas = document.getElementById('mycanvas'); canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock || canvas.webkitRequestPointerLock; canvas.requestPointerLock(); 

Documentazione ed esempio di codice completo:

https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API

Quindi, so che questo è un vecchio argomento, ma prima dirò che non è ansible. La cosa più vicina attualmente è il blocco del mouse in una singola posizione e il rilevamento delle modifiche nella sua x e y. Questo concetto è stato adottato da – sembra – Chrome e Firefox. È gestito da quello che viene chiamato blocco del mouse , e colpire la fuga lo infrangerà. Dalla mia breve lettura, penso che l’idea sia quella di bloccare il mouse in una posizione e di segnalare eventi di movimento simili agli eventi di click-and-drag.

Ecco la documentazione di rilascio:
FireFox: https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API
Chrome: http://www.chromium.org/developers/design-documents/mouse-lock

Ed ecco una dimostrazione molto carina: http://media.tojicode.com/q3bsp/

Non è ansible spostare il puntatore del mouse con javascript e, quindi, per ovvi motivi di sicurezza. Il modo migliore per ottenere questo effetto sarebbe posizionare il controllo sotto il puntatore del mouse.

Non è ansible farlo semplicemente ottenendo la posizione effettiva del puntatore del mouse, quindi calcolando e compensando le azioni del mouse dello sprite / della scena in base a questa compensazione?

Ad esempio, è necessario che il puntatore del mouse sia in basso al centro, ma si trovi in ​​alto a sinistra; nascondi il cursore, usa un’immagine cursore spostata. Sposta il movimento del cursore e l’input del mouse della mappa per abbinare i clic sprite del cursore riposizionato (o “control”) Quando / se i limiti vengono colpiti, ricalcolare. Se / quando il cursore raggiunge effettivamente il punto che vuoi che sia, rimuovi la compensazione.

Disclaimer, non uno sviluppatore di giochi.