测试设备是否通过钛加速计移动或不移动

时间:2012-07-14 16:16:58

标签: android titanium accelerometer titanium-mobile accelerator

作为问题标题,我想在三轴x,y,z处使用加速器的变化值来测试该设备静止不动或正在移动。 我可以使用钛来获得3轴加速器的值:

 Ti.Accelerometer.addEventListenter('update',function(e))
 {
    var x=e.x;
    var y=e.y;
    var z=e.z;
    var timestamp=e.timestamp;
 }

在实际设备中,这些值会不断变化。我想计算两次连续更新之间的变化。但我需要一些关于如何进行计算的指示。

2 个答案:

答案 0 :(得分:0)

addEventListener中保留3 static个变量或包含最后一个值的static结构,并计算abs()与它们之间的差异和当前值?< / p>

伪代码(只处理一个变量 - 扩展为三个):

int f( int x )
{
    static int old_x = -1;

    if( x != old_x )
    { 
         // movement detected and do something
         old_x = x;
    }
    else
    {
         // no movement
    }
}    

}

答案 1 :(得分:0)

如果需要,可以使用Ti.App.Properties变量来存储值。而不是你的伪代码的c ++样式静态变量,使用属性并在事件监听器的末尾更新它。

http://developer.appcelerator.com/apidoc/mobile/1.8.2/Titanium.App.Properties-module