DOM

インターフェイス

AbsoluteOrientationSensor インターフェイス

  編集:2022.04.03 by T.A.

MS(en-US)

Sensor API の AbsoluteOrientationSensor インターフェイスは、地球の参照座標系に対するデバイスの物理的な向きを記述します。

このセンサーを使用するには、ユーザーは、Permissions APIを介して、「accelerometer(加速度計)」、「gyroscope(ジャイロスコープ)」、および「magnetometer(磁力計)」のデバイス センサーにアクセス許可を付与する必要があります。

機能ポリシーが機能の使用をブロックしている場合は、コードがサーバーに設定されているポリシーと矛盾していることが原因です。これは、ユーザーに表示されるものではありません。Feature-Policy HTTP ヘッダーの記事には、実装手順が含まれています。

コンストラクター
new AbsoluteOrientationSensor()
新しいAbsoluteOrientationSensorオブジェクトを作成します。
プロパティ

特定のプロパティはありません。祖先の OrientationSensorSensor からメソッドを継承します。

Methods

特定の方法はありません。祖先の OrientationSensorSensor からメソッドを継承します。

イベント

特定のイベントはありません。祖先である Sensor からメソッドを継承します。

基本例
次の例は、IntelのOrientation Phone デモに大まかに基づいており、1秒間に60回の頻度でAbsoluteOrientationSensor をインスタンス化します。読み取りのたびに、OrientationSensor.quaternion を使用して電話のビジュアルモデルを回転させます。
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', error => {
  if (event.error.name == 'NotReadableError') {
    console.log("Sensor is not available.");
  }
});
sensor.start();
権限の例
向きセンサーを使用するには、複数のデバイスセンサーの権限をリクエストする必要があります。パーミッション インターフェイスは promise を使用するため、パーミッションを要求する良い方法は Promise.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.");
         }
   });

テスト
HTML:

ここに表示
スクリプト組み込み:



スクリプト:


スクリプト:



表示内容:
表示内容: