Geräteausrichtungsereignisse

Internet Explorer 11 unterstützt nun DOM-Ereignisse, die Informationen zur physischen Ausrichtung und Bewegung eines Geräts bereitstellen. Diese Ereignisse sind in der neuen W3C-Spezifikation für DeviceOrientation-Ereignisse definiert. Mithilfe von Geräteausrichtungs- und Bewegungsereignissen in IE11 können Sie mit modernen Gerätesensoren neue Eingabemechanismen für Spiele, neue Gesten für Apps (z. B. "Schütteln zum Löschen des Bildschirms" oder "Kippen zum Zoomen") oder sogar Augmented Reality (erweiterte Realität) erkunden.

Wichtig  Dieses Feature wird in IE11 unter Windows 7 nicht unterstützt.

Die W3C-Spezifikation für DeviceOrientation-Ereignisse definiert zwei unterschiedliche Arten von Sensordaten: Ausrichtung und Bewegung.

Geräteausrichtungsereignisse

Wenn die physische Ausrichtung des Geräts um mindestens 0,01 Grad geändert wird (wenn der Benutzer das Gerät kippt oder dreht), löst Internet Explorer das DeviceOrientationEvent-Objekt im window aus. Die vom DeviceOrientationEvent-Objekt bereitgestellten Daten bestimmen die Ausrichtung des Hostgeräts in Bezug auf einen festen Koordinatenrahmen auf der Erde. Dieser Erdkoordinatenrahmen weist die folgenden drei Achsen auf:

  • Osten (X) befindet sich auf der Grundebene und ist senkrecht zur Nordachse und positiv in Bezug auf die Ostachse.
  • Norden (Y) befindet sich auf der Grundebene und ist positiv in Bezug auf den geografischen Norden (Nordpol).
  • Oben (Z) befindet sich senkrecht zur Bodenebene und ist positiv in Bezug auf oben.
Diese X-, Y- und Z-Achsen entsprechen den Eigenschaften beta, gamma und alpha von DeviceOrientationEvent.Diagramm mit Darstellung der Alpha-, Beta- und Gamma-Drehwinkel, die im deviceorientation-Ereignis für die X-, Y- und Z-3D-Achsen zurückgegeben werden: Alpha = Drehung um die Z-Achse, Beta = X-Achse und Gamma = Y-Achse.

Der folgende Code veranschaulicht, wie Sie mit dem deviceorientation-Ereignis den Benutzer anweisen, mit dem Gerät nach Norden zu zeigen.


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


Gerätebewegungsereignisse

Wenn ein Gerät bewegt oder gedreht (oder besser gesagt beschleunigt) wird, wird das DeviceMotionEvent-Objekt im Fenster ausgelöst und liefert acceleration data (sowohl with als auch without die Auswirkungen der Gravitationsbeschleunigung auf das Gerät, in m/s2) für die x-, y- und z-Achsen sowie rotational rate of change data für die alpha-, beta- und gamma-Drehwinkel (in Grad/s). Für Drehungen wird die rechtshändige Regel verwendet, weshalb eine positive Drehung um eine Achse im Uhrzeigersinn erfolgt, wenn auf die positive Achsrichtung geschaut wird.

Im folgenden Beispiel wird veranschaulicht, wie Sie mit dem ondevicemotion-Ereignis Bewegungen des Geräts erkennen und melden, die einen bestimmten Schwellenwert überschreiten.


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


Kalibrierung des Kompasses

Das Ereignis compassneedscalibration wird ausgelöst, wenn der Kompass des Hostgeräts durch den Benutzer kalibriert werden muss, damit präzisere Daten zu DeviceOrientationEvent bereitgestellt werden können.

Die IE-Implementierung dieses Ereignisses wird ausgelöst, wenn der Magnetometer des Hostgeräts gemäß der MagnetometerAccuracy-Enumeration des Windows.Devices.Sensors-Namespace unzuverlässig oder ungenau wird.

API-Referenz

DeviceOrientationEvent
DeviceMotionEvent

Spezifikation

Spezifikation für DeviceOrientation-Ereignisse

 

 

Anzeigen:
© 2014 Microsoft