Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
AbsoluteOrientationSensor
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
DasAbsoluteOrientationSensor-Interface derSensor-APIs beschreibt die physische Ausrichtung des Geräts in Bezug auf das Erdkoordinatensystem.
Um diesen Sensor zu verwenden, muss der Benutzer die Erlaubnis für die Gerätesensoren'accelerometer','gyroscope' und'magnetometer' über diePermissions API erteilen.
Diese Funktion kann durch eine auf Ihrem Server festgelegtePermissions Policy blockiert werden.
In diesem Artikel
Konstruktor
AbsoluteOrientationSensor()Erstellt ein neues
AbsoluteOrientationSensor-Objekt.
Instanz-Eigenschaften
Keine spezifischen Eigenschaften; erbt Eigenschaften von seinen VorfahrenOrientationSensor undSensor.
Instanz-Methoden
Keine spezifischen Methoden; erbt Methoden von seinen VorfahrenOrientationSensor undSensor.
Ereignisse
Keine spezifischen Ereignisse; erbt Methoden von seinem Vorfahren,Sensor.
Beispiele
>Einfaches Beispiel
Das folgende Beispiel, das lose aufIntels Orientation Phone Demo basiert, instanziiert einenAbsoluteOrientationSensor mit einer Frequenz von 60 Mal pro Sekunde. Bei jeder Lesung wirdOrientationSensor.quaternion verwendet, um ein visuelles Modell eines Telefons zu drehen.
const options = { frequency: 60, referenceFrame: "device" };const sensor = new AbsoluteOrientationSensor(options);sensor.addEventListener("reading", () => { // model is a Three.js object instantiated elsewhere. model.quaternion.fromArray(sensor.quaternion).inverse();});sensor.addEventListener("error", (event) => { if (event.error.name === "NotReadableError") { console.log("Sensor is not available."); }});sensor.start();Berechtigungs-Beispiel
Die Verwendung von Orientierungssensoren erfordert das Anfordern von Berechtigungen für mehrere Gerätesensoren. Da dasPermissions-Interface Versprechen (promises) verwendet, ist eine gute Methode, um Berechtigungen anzufordern, die Verwendung vonPromise.all.
const sensor = new AbsoluteOrientationSensor();Promise.all([ navigator.permissions.query({ name: "accelerometer" }), navigator.permissions.query({ name: "magnetometer" }), navigator.permissions.query({ name: "gyroscope" }),]).then((results) => { if (results.every((result) => result.state === "granted")) { sensor.start(); // … } else { console.log("No permissions to use AbsoluteOrientationSensor."); }});Spezifikationen
| Specification |
|---|
| Orientation Sensor> # absoluteorientationsensor-interface> |