Windows Dev Center

Compass.ReadingChanged | readingchanged Event

Tritt jedes Mal auf, wenn der Kompass neue Sensormesswerte meldet.

Syntax


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

compass.onreadingchanged = onReadingChanged;


Ereignisinformationen

Delegat TypedEventHandler<Compass, CompassReadingChangedEventArgs>

Hinweise

Eine Anwendung registriert möglicherweise diesen Ereignishandler, um Sensorwerte abzurufen. Die Anwendung muss ein erforderliches ReportInterval einrichten. Dies informiert den Sensortreiber darüber, dass Ressourcen zugeordnet werden sollten, um die Anforderungen der Anwendung zu erfüllen.

Anwendungen können die Häufigkeit des Ereignisses festlegen, indem sie die ReportInterval-Eigenschaft festlegen.

Das folgende Beispiel veranschaulicht, wie eine mit C# und XAML erstellte Windows Store-App ihr ReadingChanged registriert.


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);
    }
}


Im folgenden Beispiel wird der ReadingChanged-Ereignishandler dargestellt.


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";
        }
    });
}


Das folgende Beispiel veranschaulicht, wie eine mit JavaScript erstellte Windows Store-App ihren ReadingChanged-Ereignishandler registriert.


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");
    }
}


Im folgenden Beispiel wird der ReadingChanged-Ereignishandler dargestellt.


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);
    }
}


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Keine unterstützt

Mindestens unterstütztes Telefon

Windows Phone 8

Namespace

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

Metadaten

Windows.winmd

Siehe auch

Compass

 

 

Anzeigen:
© 2015 Microsoft