Eventos de orientação de dispositivo

O Internet Explorer 11 adiciona suporte a eventos DOM que fornecem informações sobre a orientação física e a movimentação de um dispositivo, como definido na Especificação de Evento DeviceOrientation emergente W3C. Usando eventos de movimento e orientação de dispositivo no IE11, você pode usar sensores de dispositivos modernos para explorar novos mecanismos de entrada para jogos, novos gestos para aplicativos (como "sacudir para limpar a tela" ou "inclinar para ampliar o ") ou até mesmo experiências realísticas ampliadas.

Importante  Esse recurso não tem suporte no IE11 no Windows 7.

A especificação de Eventos DeviceOrientation do W3C define dois tipos diferentes de dados de sensor: orientação e movimento.

Eventos de orientação de dispositivo

Quando a orientação física do dispositivo foi alterada (quando o usuário o inclina ou gira) em 0,01 graus ou mais, o Internet Explorer dispara o objeto DeviceOrientationEvent em window. Os dados fornecidos pelo objeto DeviceOrientationEvent especificam a orientação do dispositivo host em relação a um quadro de coordenadas fixado na Terra. Especificamente, esse quadro de coordenadas terrestres tem os três eixos a seguir:

  • Leste (X) está no plano horizontal, perpendicular ao eixo norte e positivo em direção ao leste.
  • Norte (Y) está no plano horizontal e positivo em direção ao norte verdadeiro (no sentido do Pólo Norte).
  • Para cima (Z) é perpendicular ao plano horizontal e positivo para cima.
Esses eixos X, Y e Z correspondem às propriedades beta, gamma e alpha de DeviceOrientationEvent, respectivamente.Diagrama que mostra os ângulos alfa, beta e gama da rotação retornada no evento deviceorientation relacionado aos eixos 3D X, Y e Z: alfa = girar em torno do eixo Z, beta = eixo X e gama = eixo Y.

O código a seguir mostra como usar o evento deviceorientation para orientar o usuário a apontar o dispositivo para o norte.


<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>


Eventos de movimento de dispositivo

Quando um dispositivo está sendo movido ou girado (ou, mais precisamente, acelerado), o objeto DeviceMotionEvent é disparado na janela e fornece acceleration data (with e without, os efeitos da aceleração gravitacional no dispositivo, expressos em m/s2) nos eixos x, y e z, bem como rotational rate of change data nos ângulos de rotação alpha, beta e gamma (expressos em deg/s). Rotações usam a regra da mão direita, de forma que a rotação positiva em torno de um eixo ocorre no sentido horário quando vista olhando-se para o sentido positivo do eixo.

O exemplo a seguir demonstra como usar o evento ondevicemotion para detectar e relatar qualquer movimento do dispositivo acima de um limite especificado.


<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>


Calibrando a bússola

O evento compassneedscalibration dispara quando a bússola do dispositivo do host requer calibração por parte do usuário, para fornecer dados com maior precisão do DeviceOrientationEvent.

A implementação IE desse evento dispara sempre que o magnetômetro do dispositivo do host muda de estado, de não confiável ou de precisão aproximada, conforme definido pela enumeração MagnetometerAccuracy do namespace Windows.Devices.Sensors.

Referência de API

DeviceOrientationEvent
DeviceMotionEvent

Especificação

Especificação de eventos DeviceOrientation

 

 

Mostrar:
© 2014 Microsoft