-1

さて、私はこの小さなスクリプトを持っています:

<script>
window.addEventListener('deviceorientation', function(event) {
  var a = event.alpha;
  var b = event.beta;
  var g = event.gamma;
}, false);
</script>

<script>
setInterval('alert(""+g+"");', '1000');
</script>

を追加deviceorientationしてページに添付し、現在の向きであるガンマを 1 秒ごとに警告する必要があります。

しかし、それは機能していませんか?何も警告しません!ヒント...アイデア...?

編集:コンソールログに「Uncaught ReferenceError: g is not defined」が表示されます...しかし、定義されています!

4

1 に答える 1

2

このvarステートメントは、変数のスコープをそれが含まれる関数に設定します。

存在しないグローバル スコープ内のローカル変数にアクセスしようとしています。

さらに、発生するまで変数を設定しませんdeviceorientationが、常に読み取ろうとします。

次のようにコードを書き直す必要があります。

<script>
window.addEventListener('deviceorientation', function(event) {

  var a = event.alpha;
  var b = event.beta;
  var g = event.gamma;

  console.log( g.toString() ); // Better to use a non-blocking method like console.log to display results.

}, false);
</script>
于 2013-03-11T07:17:33.320 に答える