PhoneGap API帮助文档翻译—Accelerometer (加速度计)

“采集设备在x、y、z方向上的动作。

方法:

  • accelerometer.getCurrentAcceleration
  • accelerometer.watchAcceleration
  • accelerometer.clearWatch


参数:

  • accelerometerSuccess
  • accelerometerError
  • accelerometerOptions


对象(只读):

  • Acceleration


accelerometer.getCurrentAcceleration
 


返回当前沿x、y和z方向的加速度。

  1.     navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);  
复制代码

说明:
加速计是检测设备在当前方向上所做相对运动变化(增、减量)的运动传感器。加速计可以检测沿X、Y和Z轴的三维运动。
加速度数据通过accelerometerSuccess回调函数返回。

支持的平台:

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone


简单的范例:

  1.     function onSuccess(acceleration) {  
  2.         alert('Acceleration X: ' + acceleration.x + '\n' +  
  3.         'Acceleration Y: ' + acceleration.y + '\n' +  
  4.         'Acceleration Z: ' + acceleration.z + '\n' +  
  5.         'Timestamp: '      + acceleration.timestamp + '\n');  
  6.     }  
  7.           
  8.     function onError() {  
  9.         alert('onError!');  
  10.     }  
  11.           
  12.     navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
复制代码

完整的范例:

  1.     </pre><pre name="code" class="html"><!DOCTYPE html>  
  2.     <html>  
  3.     <head>  
  4.     <title>Acceleration Example</title>  
  5.       
  6.     <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>  
  7.     <script type="text/javascript" charset="utf-8">  
  8.       
  9.         // 等待加载PhoneGap     
  10.         document.addEventListener("deviceready", onDeviceReady, false);   
  11.       
  12.         // PhoneGap加载完毕  
  13.         function onDeviceReady() {  
  14.             navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);  
  15.         }  
  16.       
  17.         // onSuccess: 返回当前加速度数据的快照  
  18.         function onSuccess(acceleration) {  
  19.             alert('Acceleration X: ' + acceleration.x + '\n' +  
  20.                 'Acceleration Y: ' + acceleration.y + '\n' +  
  21.                 'Acceleration Z: ' + acceleration.z + '\n' +  
  22.                 'Timestamp: '      + acceleration.timestamp + '\n');  
  23.         }  
  24.       
  25.         // onError: 返回加速度数据失败  
  26.         function onError() {  
  27.             alert('onError!');  
  28.         }  
  29.           
  30.     </script>  
  31.       
  32.     </head>  
  33.     <body>  
  34.         <h1>Example</h1>  
  35.         <p>getCurrentAcceleration</p>  
  36.     </body>  
  37.     </html>  
复制代码

iPhone的特异情况:

  • iPhone没有获取在任何给定点当前加速度数据的概念。
  • 你必须通过给定时间间隔查看加速度并获得数据。
  • 因此,getCurrentAcceleration函数会返回从phoneGap watchAccelerometer调用开始后的最近一个返回值
accelerometer.watchAcceleration
 


在固定的时间间隔获取沿x、y和z轴的加速度。

  1.     var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,  
  2.                                 accelerometerError,  
  3.                                 [accelerometerOptions]);  
复制代码

说明:
加速计是检测设备在当前方向上所做相对运动变化(增、减量)的动作传感器。加速计可以检测沿X、Y和Z轴的三维运动。
accelerometer.watchAcceleration每隔固定时间就获取一次设备的当前加速度。每次取得加 速度后,accelerometerSuccess回调函数会被执行。通过acceleratorOptions对象的frequency参数可以设定以 毫秒为单位的时间间隔。
返回的watch id是加速度计监视周期的引用,可以通过accelerometer.clearWatch调用该watch ID以停止对加速度计的监视。

支持的平台:

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone

简单的范例:

  1.     function onSuccess(acceleration) {  
  2.         alert('Acceleration X: ' + acceleration.x + '\n' +  
  3.         'Acceleration Y: ' + acceleration.y + '\n' +  
  4.         'Acceleration Z: ' + acceleration.z + '\n' +  
  5.         'Timestamp: '      + acceleration.timestamp + '\n');  
  6.     }  
  7.           
  8.     function onError() {  
  9.         alert('onError!');  
  10.     }  
  11.           
  12.     var options = { frequency: 3000 };  // 每隔3秒更新一次  
  13.           
  14.     var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);  
复制代码


完整的范例:

  1.     <!DOCTYPE html>  
  2.     <html>  
  3.     <head>  
  4.     <title>Acceleration Example</title>  
  5.           
  6.     <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>  
  7.     <script type="text/javascript" charset="utf-8">  
  8.       
  9.         // watch id 是当前“watchAcceleration”的引用  
  10.         var watchID = null;  
  11.           
  12.         // 等待加载PhoneGap  
  13.         document.addEventListener("deviceready", onDeviceReady, false);  
  14.           
  15.         // PhoneGap加载完毕  
  16.         function onDeviceReady() {  
  17.             startWatch();  
  18.         }  
  19.           
  20.         // 开始监视加速度  
  21.         function startWatch() {  
  22.           
  23.         // 每隔3秒钟更新一次加速度数据  
  24.         var options = { frequency: 3000 };  
  25.           
  26.         watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);  
  27.         }  
  28.           
  29.         // 停止监视加速度  
  30.         function stopWatch() {  
  31.             if (watchID) {  
  32.                 navigator.accelerometer.clearWatch(watchID);  
  33.                 watchID = null;  
  34.             }  
  35.         }  
  36.           
  37.         // onSuccess: 获取当前加速度数据的快照  
  38.         function onSuccess(acceleration) {  
  39.             var element = document.getElementById('accelerometer');  
  40.             element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +  
  41.                                 'Acceleration Y: ' + acceleration.y + '<br />' +  
  42.                                 'Acceleration Z: ' + acceleration.z + '<br />' +  
  43.                                 'Timestamp: '      + acceleration.timestamp + '<br />';  
  44.         }  
  45.           
  46.         // onError: 获取加速度失败  
  47.         function onError() {  
  48.             alert('onError!');  
  49.         }  
  50.           
  51.     </script>  
  52.       
  53.     </head>  
  54.     <body>  
  55.         <div id="accelerometer">Waiting for accelerometer...</div>  
  56.     </body>  
  57.     </html>  
复制代码

iPhone的特异情况:

  • 在请求的时间间隔,PhoneGap将调用success回调指向的函数,并传递加速度计数据。
  • 不过,PhoneGap将对设备的请求间隔时间限制为最小40ms,最大1000ms。
  • 例如,如果你设定每隔3秒(3000毫秒)请求一次,PhoneGap仍然每隔1秒请求一次设备,但是每隔3秒才调用一次success回调函数。


accelerometer.clearWatch
 


停止watch ID参数指向的加速度监视。

  1. navigator.accelerometer.clearWatch(watchID);  
复制代码

watchID:由accelerometer.watchAcceleration返回的引用标识ID。
支持的平台:

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone


简单的范例:

  1.     var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);  
  2.       
  3.     // ... 后续处理 ...  
  4.       
  5.     navigator.accelerometer.clearWatch(watchID);  
复制代码


完整的范例:

  1.     <!DOCTYPE html>  
  2.     <html>  
  3.     <head>  
  4.     <title>Acceleration Example</title>  
  5.       
  6.     <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>  
  7.     <script type="text/javascript" charset="utf-8">  
  8.       
  9.         // watch id 是当前“watchAcceleration”的引用  
  10.         var watchID = null;  
  11.           
  12.         // 等待加载PhoneGap  
  13.         document.addEventListener("deviceready", onDeviceReady, false);  
  14.           
  15.         // PhoneGap加载完毕  
  16.         function onDeviceReady() {  
  17.             startWatch();  
  18.         }  
  19.           
  20.         // 开始监视加速度  
  21.         function startWatch() {  
  22.           
  23.             // 每隔3秒钟更新一次加速度数据  
  24.             var options = { frequency: 3000 };  
  25.             watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);  
  26.         }  
  27.           
  28.         // 停止监视加速度  
  29.         function stopWatch() {  
  30.             if (watchID) {  
  31.                 navigator.accelerometer.clearWatch(watchID);  
  32.                 watchID = null;  
  33.             }  
  34.         }  
  35.           
  36.         // onSuccess: 获取当前加速度数据的快照  
  37.         function onSuccess(acceleration) {  
  38.             var element = document.getElementById('accelerometer');  
  39.             element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +  
  40.                                 'Acceleration Y: ' + acceleration.y + '<br />' +  
  41.                                 'Acceleration Z: ' + acceleration.z + '<br />' +  
  42.                                 'Timestamp: '      + acceleration.timestamp + '<br />';  
  43.         }  
  44.           
  45.         // onError: 获取加速度失败  
  46.         function onError() {  
  47.             alert('onError!');  
  48.         }  
  49.           
  50.     </script>  
  51.     </head>  
  52.     <body>  
  53.         <div id="accelerometer">Waiting for accelerometer...</div>  
  54.         <button>Stop Watching</button>  
  55.     </body>  
  56.     </html>  
复制代码
Acceleration
 

包含特定时间点采集到的加速计数据。

属性:

  • x:在X轴的运动量,[0, 1]范围(数字类型)
  • y:在Y轴的运动量,[0, 1]范围(数字类型)
  • z:在Z轴的运动量,[0, 1]范围(数字类型)
  • timestamp:以毫秒为单位的创建时间戳。(DOMTimeStamp类型)


说明:
这个对象是由phoneGap创建和填充,并由Acce这个对象是由PhoneGap创建和填充,并由Accelerometer的方法返回。


支持的平台:

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone


简单的范例:

  1.     function onSuccess(acceleration) {  
  2.         alert('Acceleration X: ' + acceleration.x + '\n' +  
  3.         'Acceleration Y: ' + acceleration.y + '\n' +  
  4.         'Acceleration Z: ' + acceleration.z + '\n' +  
  5.         'Timestamp: '      + acceleration.timestamp + '\n');  
  6.     }  
  7.           
  8.     function onError() {  
  9.         alert('onError!');  
  10.     }  
  11.           
  12.     navigator.accelerometer.getCurrentAcceleration(onSuccess,onError);  
复制代码

完整的范例:

  1.     <!DOCTYPE html>  
  2.     <html>  
  3.     <head>  
  4.     <title>Acceleration Example</title>  
  5.           
  6.     <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>  
  7.     <script type="text/javascript" charset="utf-8">  
  8.           
  9.         // 等待加载PhoneGap  
  10.         document.addEventListener("deviceready", onDeviceReady, false);  
  11.           
  12.         // PhoneGap加载完毕  
  13.         function onDeviceReady() {  
  14.             navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);  
  15.         }  
  16.           
  17.         // onSuccess: 获得加速度数据的快照  
  18.         function onSuccess(acceleration) {  
  19.             alert('Acceleration X: ' + acceleration.x + '\n' +  
  20.             'Acceleration Y: ' + acceleration.y + '\n' +  
  21.             'Acceleration Z: ' + acceleration.z + '\n' +  
  22.             'Timestamp: '      + acceleration.timestamp + '\n');  
  23.         }  
  24.           
  25.         // onError: 获取加速度失败  
  26.         function onError() {  
  27.             alert('onError!');  
  28.         }  
  29.           
  30.     </script>  
  31.       
  32.     </head>  
  33.     <body>  
  34.         <h1>Example</h1>  
  35.         <p>getCurrentAcceleration</p>  
  36.     </body>  
  37.     </html>  
复制代码
accelerometerSuccess
 

提供加速度信息的onSuccess回调函数。

  1.     function(acceleration) {  
  2.        // 进一步处理  
  3.     }  
复制代码


参数:

  • acceleration: 在某一时刻的加速度(Acacceleration:在某一时刻的加速度。(Acceleration对象类型)
    1.     function onSuccess(acceleration) {  
    2.         alert('Acceleration X: ' + acceleration.x + '\n' +  
    3.         'Acceleration Y: ' + acceleration.y + '\n' +  
    4.         'Acceleration Z: ' + acceleration.z + '\n' +  
    5.         'Timestamp: '      + acceleration.timestamp + '\n');  
    6.     }  
    复制代码

    accelerometerError
     
    加速度方法的onError回调函数。
  1.     function() {  
  2.        // 错误处理  
  3.     }  
复制代码
accelerometerOptions
 

定制检索加速度计的可选参数。

选项:frequency:多少毫秒获取一次Acceleration。(数字类型)(默认值:10000)

posted @ 2014-03-20 12:02  huidaoli  阅读(234)  评论(0编辑  收藏  举报