Eventi di orientamento del dispositivo

Internet Explorer 11 aggiunge il supporto per gli eventi DOM che forniscono informazioni sull'orientamento fisico e il movimento di un dispositivo, come indicato nella  Specifica dell'evento DeviceOrientation W3C. Usando gli eventi relativi all'orientamento e al movimento di un dispositivo in Internet Explorer 11, puoi sfruttare i sensori dei moderni dispositivi per sperimentare nuovi meccanismi di input per i giochi, nuovi gesti per le app (come "scuoti per cancellare lo schermo" e "inclina per regolare lo zoom") o addirittura fornire esperienze di realtà aumentata.

Importante  Questa funzionalità non è supportata in IE11 in Windows 7.

La specifica W3C dell'evento DeviceOrientation definisce due diversi tipi di dati dei sensori, relativi a orientamento e movimento.

Eventi di orientamento del dispositivo

Quando l'orientamento fisico del dispositivo viene modificato (perché l'utente lo inclina o lo ruota) di almeno 0,01 gradi, Internet Explorer genera l'oggetto DeviceOrientationEvent a livello di window. I dati forniti dall'oggetto DeviceOrientationEvent indicano l'orientamento del dispositivo host in relazione a un sistema di coordinate fisso sulla terra. Nello specifico, il sistema di coordinate terrestri utilizza i tre assi seguenti:

  • L'asse est (X) si trova nel piano del suolo ed è perpendicolare all'asse Nord, con verso positivo in direzione est.
  • L'asse nord (Y) si trova nel piano del suolo e ha verso positivo in direzione nord (verso il Polo Nord).
  • L'asse verticale (Z) è perpendicolare al piano del suolo e ha verso positivo in direzione ascendente.
Gli assi X, Y e Z corrispondono rispettivamente alle proprietà beta, gamma e alpha di DeviceOrientationEvent.Immagine che mostra gli angoli di rotazione alfa, beta e gamma restituiti dall'evento deviceorientation correlato agli assi 3D X, Y e Z: alfa = ruota attorno all'asse Z, beta = attorno all'asse X e gamma = attorno all'asse Y.

Il codice seguente mostra come utilizzare l'evento deviceorientation per indicare all'utente di puntare il dispositivo verso nord.


<div id="directions"></div>
<script>
    window.addEventListener("deviceorientation", findNorth);
    function findNorth(evt) {
        var directions = document.getElementById("directions");
        if (evt.alpha < 5 || evt.alpha > 355) {
            directions.innerHTML = "North!";
        } else if (evt.alpha < 180) {
            directions.innerHTML = "Turn Left";
        } else {
            directions.innerHTML = "Turn Right";
        }
    }
</script>


Eventi di movimento del dispositivo

Quando un dispositivo viene mosso o ruotato (più precisamente accelerato), nella finestra viene generato l'oggetto DeviceMotionEvent, che fornisce acceleration data (with e without gli effetti dell'accelerazione gravitazionale sul dispositivo, espressa in m/s2) nelle direzioni degli assi x, y e z, oltre alla rotational rate of change data nelle direzioni degli angoli di rotazione alpha, beta e gamma (espressa in gradi/s). Per le rotazioni viene utilizzata la regola della mano destra, pertanto la rotazione positiva attorno a un asse è quella in senso orario, guardando verso la direzione positiva dell'asse.

L'esempio seguente mostra come utilizzare l'evento ondevicemotion per rilevare e segnalare tutti i movimenti del dispositivo oltre una soglia specificata.


<div id="status"></div>
<script>
    window.addEventListener("devicemotion", detectShake);
    function detectShake(evt) {
        var status = document.getElementById("status");
        var accl = evt.acceleration;
        if (accl.x > 1.5 || accl.y > 1.5 || accl.z > 1.5) {
            status.innerHTML = "EARTHQUAKE!!!";
        } else {
            status.innerHTML = "All systems go!";
        }
    }
</script>


Calibrazione della bussola

L'evento compassneedscalibration viene generato quando la bussola del dispositivo host richiede la calibrazione da parte dell'utente al fine di fornire dati più precisi tramite DeviceOrientationEvent.

L'implementazione di Internet Explorer di questo evento viene generata ogni volta che lo stato del magnetometro del dispositivo host cambia su uno stato di accuratezza inaffidabile o approssimativo, così come definito nell'enumerazione MagnetometerAccuracy dello spazio dei nomi Windows.Devices.Sensors .

Informazioni di riferimento sulle API

DeviceOrientationEvent
DeviceMotionEvent

Specifica

Specifica dell'evento DeviceOrientation

 

 

Mostra:
© 2014 Microsoft