0

質問のタイトルとして、x、y、z の 3 軸でのアクセラレータの変化値を使用して、デバイスが静止しているか動いているかをテストしたいと考えています。チタンを使用して、3 軸のアクセラレータの値を取得できます。

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

実際のデバイスでは、これらの値は連続的に変化します。連続する2回の更新間の変化を計算したい。しかし、計算を行う方法についていくつかの指針が必要です。

4

2 に答える 2

0

必要に応じて、Ti.App.Properties 変数を使用して値を格納できます。疑似コードの C++ スタイルの静的変数の代わりに、プロパティを使用してイベント リスナーの最後で更新します。

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

于 2012-07-17T17:06:28.250 に答える
0

最後の値を含むaddEventListener3 つstaticの変数または単一の構造体を保持し、それらと現在の値の差を計算してみてはどうでしょうか?staticabs()

疑似コード (変数を 1 つだけ処理 - 3 つに展開):

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-14T16:23:14.877 に答える