Événements liés à l’orientation de l’appareil

Internet Explorer 11 ajoute la prise en charge des événements DOM, qui fournissent des informations sur l’orientation et le mouvement physique d’un appareil, conformément à la nouvelle spécification sur l’événement DeviceOrientation (DeviceOrientation Event) du W3C. Avec les événements liés au mouvement et à l’orientation de l’appareil disponibles dans IE11, vous pouvez utiliser les capteurs de pointe des appareils pour explorer de nouveaux mécanismes d’entrée pour les jeux, de nouveaux mouvements pour les applications (comme « secouer l’appareil pour effacer le contenu de l’écran » ou « incliner l’appareil pour zoomer ») ou même des expériences de réalité augmentée.

Important  Cette fonctionnalité n’est pas prise en charge dans IE11 sur Windows 7.

La spécification DeviceOrientation Events du W3C définit deux types de données de capteur : l’orientation et le mouvement.

Événements liés à l’orientation de l’appareil

Lorsque l’orientation physique de l’appareil change (suite à l’inclinaison ou à la rotation de l’appareil) de 0,01 degrés ou plus, Internet Explorer déclenche l’objet DeviceOrientationEvent au niveau de l’objet window. Les données fournies par l’objet DeviceOrientationEvent spécifient l’orientation de l’appareil hôte par rapport à un système de coordonnées fixe sur Terre. Plus précisément, ce système de coordonnées fixe possède les trois axes suivants :

  • L’axe X (est) est dans le plan du sol, perpendiculaire à l’axe nord avec des valeurs positives vers l’est.
  • L’axe Y (nord) est dans le plan du sol, avec des valeurs positives vers le nord géographique (vers le pôle Nord).
  • L’axe Z (haut) est perpendiculaire au plan du sol, avec des valeurs positives vers le haut.
Ces axes (X, Y et Z) correspondent, respectivement, aux propriétés beta, gamma et alpha de l’objet DeviceOrientationEvent.Schéma montrant les angles de rotation alpha, bêta et gamma retournés dans l’événement deviceorientation en relation avec les axes 3D X, Y et Z : alpha = rotation autour de l’axe Z, bêta = axe X et gamma = axe Y.

Le code suivant indique comment utiliser l’événement deviceorientation pour guider l’utilisateur à pointer son appareil vers le 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>


Événements liés au mouvement de l’appareil

Lorsqu’un appareil fait l’objet d’un déplacement ou d’une rotation (ou, plus exactement, d’une accélération), l’objet DeviceMotionEvent est déclenché au niveau de la fenêtre et fournit un objet acceleration data (avec [with] et sans [without] les effets de l’accélération due à la pesanteur sur l’appareil, en m/s2) dans les axes x, y et z, ainsi que l’objet rotational rate of change data dans les angles de rotation alpha, beta et gamma (en degrés/s). Les rotations utilisent la règle de la main droite selon laquelle une rotation positive autour d’un axe s’effectue dans le sens des aiguilles d’une montre (dans le cas d’un observateur regardant en direction des valeurs positives de l’axe).

L’exemple suivant montre comment utiliser l’événement ondevicemotion pour détecter et indiquer tout mouvement de l’appareil au-dessus d’un seuil spécifié.


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


Étalonnage de la boussole

L’événement compassneedscalibration se déclenche quand la boussole de l’appareil hôte doit être étalonnée par l’utilisateur pour fournir des données plus précises à partir de DeviceOrientationEvent.

L’implémentation IE de cet événement se déclenche chaque fois que la précision du magnétomètre de l’appareil hôte devient non fiable ou approximative, comme défini par l’énumération MagnetometerAccuracy de l’espace de noms Windows.Devices.Sensors.

Informations de référence sur les API

DeviceOrientationEvent
DeviceMotionEvent

Spécification

DeviceOrientation Event Specification

 

 

Afficher:
© 2015 Microsoft