导出 (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

命名空间

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

元数据

Windows.winmd

另请参见

Compass

 

 

显示:
© 2014 Microsoft