내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Compass.ReadingChanged | readingchanged Event

나침반이 새 센서 판독값을 보고할 때마다 발생합니다.

구문


function onReadingChanged(eventArgs) { /* 코드 */ }
 
// addEventListener syntax
compass.addEventListener("readingchanged", onReadingChanged);
compass.removeEventListener("readingchanged", onReadingChanged);
 
- or -

compass.onreadingchanged = onReadingChanged;


이벤트 정보

대리자 TypedEventHandler<Compass, CompassReadingChangedEventArgs>

설명

응용 프로그램은 이 이벤트 처리기를 등록하여 센서 판독값을 얻을 수 있습니다. 응용 프로그램은 원하는 ReportInterval을 설정해야 합니다. 이렇게 하면 응용 프로그램의 요구 사항을 충족시키기 위해 리소스를 할당해야 한다는 사실을 센서 드라이버에 알릴 수 있습니다.

응용 프로그램은 ReportInterval 속성을 설정하여 이 이벤트의 빈도를 설정할 수 있습니다.

다음 예제에서는 C# 및 XAML로 작성된 Windows 스토어 앱이 ReadingChanged 이벤트 처리기를 등록하는 방법을 보여 줍니다.


private void ScenarioEnable(object sender, RoutedEventArgs e)
{
    if (_compass != null)
    {
        // Establish the report interval
        _compass.ReportInterval = _desiredReportInterval;

        Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged);
        _compass.ReadingChanged += new TypedEventHandler<Compass, CompassReadingChangedEventArgs>(ReadingChanged);

        ScenarioEnableButton.IsEnabled = false;
        ScenarioDisableButton.IsEnabled = true;
    }
    else
    {
        rootPage.NotifyUser("No compass found", NotifyType.StatusMessage);
    }
}


다음 예제에서는 ReadingChanged 이벤트 처리기를 보여 줍니다.


async private void ReadingChanged(object sender, CompassReadingChangedEventArgs e)
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        CompassReading reading = e.Reading;
        ScenarioOutput_MagneticNorth.Text = String.Format("{0,5:0.00}", reading.HeadingMagneticNorth);
        if (reading.HeadingTrueNorth != null)
        {
            ScenarioOutput_TrueNorth.Text = String.Format("{0,5:0.00}", reading.HeadingTrueNorth);
        }
        else
        {
            ScenarioOutput_TrueNorth.Text = "No data";
        }
    });
}


다음 예제에서는 JavaScript로 작성된 Windows 스토어 앱이 ReadingChanged 이벤트 처리기를 등록하는 방법을 보여 줍니다.


function enableReadingChangedScenario() {
    if (compass) {
        // Set the reportInterval to enable the sensor events
        compass.reportInterval = reportInterval;

        document.addEventListener("msvisibilitychange", msVisibilityChangeHandler, false);
        compass.addEventListener("readingchanged", onDataChanged);
        document.getElementById("scenario1Open").disabled = true;
        document.getElementById("scenario1Revoke").disabled = false;
    } else {
        WinJS.log && WinJS.log("No compass found", "sample", "error");
    }
}


다음 예제에서는 ReadingChanged 이벤트 처리기를 보여 줍니다.


function onDataChanged(e) {
    var reading = e.reading;

    document.getElementById("eventOutputMagneticNorth").innerHTML = reading.headingMagneticNorth.toFixed(2);
    if (reading.headingTrueNorth) {
        document.getElementById("eventOutputTrueNorth").innerHTML = reading.headingTrueNorth.toFixed(2);
    }
}


요구 사항

지원되는 최소 클라이언트

Windows 8

지원되는 최소 서버

지원되는 사항 없음

지원되는 최소 전화

Windows Phone 8

Namespace

Windows.Devices.Sensors
Windows::Devices::Sensors [C++]

Metadata

Windows.winmd

참고 항목

Compass

 

 

표시:
© 2014 Microsoft