장치 방향 이벤트

Internet Explorer 11은 새로운 W3C DeviceOrientation 이벤트 사양에 정의된 대로 장치의 실제 방향과 동작에 대한 정보를 제공하는 DOM 이벤트를 추가로 지원합니다. IE11의 장치 방향 및 동작 이벤트를 사용하면 최신 장치 센서를 통해 게임, 새로운 앱 제스처(예: "흔들어서 화면 지우기: 또는 "기울여서 확대/축소") 또는 증강 현실 환경에 대한 새로운 입력 메커니즘을 탐색할 수 있습니다.

중요  Windows 7의 IE11에서는 이 기능이 지원되지 않습니다.

W3C DeviceOrientation 이벤트 사양은 두 가지 센서 데이터 형식인 방향 및 동작을 정의합니다.

장치 방향 이벤트

사용자가 장치를 기울이거나 회전할 때 장치의 실제 방향이 0.01도 이상 변경된 경우 Internet Explorer에서는 window에서 DeviceOrientationEvent 개체를 실행합니다. DeviceOrientationEvent 개체에서 제공한 데이터는 지구에 고정된 좌표 프레임을 기준으로 호스트 장치의 방향을 지정합니다. 특히 이 지구 좌표 프레임에는 다음과 같은 축 세 개가 있습니다.

  • 동쪽(X)은 북쪽 축에 수직인 기준 평면이고 동쪽으로 양의 방향입니다.
  • 북쪽(Y)은 기준 평면이고 진북(북극)으로 양의 방향입니다.
  • 위쪽(Z)은 기준 평면에 수직이고 위쪽으로 양의 방향입니다.
이러한 X, YZ 축은 각각 DeviceOrientationEventbeta, gammaalpha 속성에 해당합니다.3D X, Y 및 Z 축에 관련된 deviceorientation 이벤트로 반환되는 회전의 알파, 베타 및 감마 각도를 보여 주는 다이어그램: 알파 = Z축을 중심으로 회전, 베타 = X축 및 감마 = Y축.

다음 코드는 deviceorientation 이벤트를 사용하여 사용자에게 장치를 북쪽 방향으로 가리키도록 안내하는 방법을 보여 줍니다.


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


장치 동작 이벤트

장치가 이동 또는 회전되거나 보다 정확하게 가속되는 경우 DeviceMotionEvent 개체가 창에서 실행되고 x, yz 축에서 acceleration data(withwithout 둘 다 장치에서 중력 가속의 영향임(m/s2으로 표시))를 제공하고 alpha, betagamma 회전 각도(deg/s로 표시)에서 rotational rate of change data를 제공합니다. 회전은 오른손 규칙을 사용하므로 축에 대한 양의 방향을 볼 때 축을 중심으로 양의 방향이 시계 방향이 됩니다.

다음 샘플에서는 ondevicemotion 이벤트를 사용하여 지정된 임계값을 초과하는 장치의 움직임을 검색 및 보고하는 방법을 보여 줍니다.


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


나침반 보정

compassneedscalibration 이벤트는 DeviceOrientationEvent에서 더욱 정확한 데이터를 제공하기 위해 사용자가 호스트 장치 나침반을 보정해야 할 때 발생합니다.

이 이벤트 파일의 IE 구현은 호스트 장치 자력계가 불안정 상태로 변경되거나 Windows.Devices.Sensors 네임스페이스의 MagnetometerAccuracy 열거형에 정의된 정확도에 근접할 때마다 발생합니다.

API 참조

DeviceOrientationEvent
DeviceMotionEvent

사양

DeviceOrientation 이벤트 사양

 

 

표시:
© 2015 Microsoft