作为题目,我想使用加速器在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;
}在真实设备中,这些值不断变化。我想计算两次连续更新之间的变化。但我需要一些关于如何进行计算的提示。
发布于 2012-07-15 00:23:15
在addEventListener中,保留3个static变量或包含最后一个值的单个static结构,并计算它们与当前值的abs()差如何?
伪代码(只处理一个变量-展开为三个):
int f( int x )
{
static int old_x = -1;
if( x != old_x )
{
// movement detected and do something
old_x = x;
}
else
{
// no movement
}
} }
发布于 2012-07-18 01:06:28
如果需要,您可以使用Ti.App.Properties变量来存储值。使用属性并在事件侦听器的末尾更新它,而不是伪代码的c++样式静态变量。
http://developer.appcelerator.com/apidoc/mobile/1.8.2/Titanium.App.Properties-module
https://stackoverflow.com/questions/11485349
复制相似问题