PhoneGap-Accelerometer(phoneGap加速计小解)

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

方法:代码   收藏代码
  1. accelerometer.getCurrentAcceleration  
  2. accelerometer.watchAcceleration  
  3. accelerometer.clearWatch  


参数:代码   收藏代码
  1. accelerometerSuccess  
  2. accelerometerError  
  3. accelerometerOptions  


对象(只读):代码   收藏代码
  1. Acceleration  


accelerometer.getCurrentAcceleration  
返回当前沿x、y和z方向的加速度。 
Java代码   收藏代码
  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. function onError() {  
  8.     alert('onError!');  
  9. }     
  10. 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. </script>  
  30. </head>  
  31. <body>  
  32.     <h1>Example</h1>  
  33.     <p>getCurrentAcceleration</p>  
  34. </body>  
  35. </html>  

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



accelerometer.watchAcceleration 

在固定的时间间隔获取沿x、y和z轴的加速度。 
Java代码   收藏代码
  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. </head>  
  53. <body>  
  54.     <div id="accelerometer">Waiting for accelerometer...</div>  
  55. </body>  
  56. </html>  


iPhone的特异情况: 

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


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

Java代码   收藏代码
  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 οnclick="stopWatch();">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. </head>  
  32. <body>  
  33.     <h1>Example</h1>  
  34.     <p>getCurrentAcceleration</p>  
  35. </body>  
  36. </html>  





accelerometerSuccess 

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

Java代码   收藏代码
  1. function(acceleration) {  
  2.    // 进一步处理  
  3. }  



参数: 
    acceleration: 在某一时刻的加速度(Acacceleration:在某一时刻的加速度。(Acceleration对象类型) 

Java代码   收藏代码
  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');  



accelerometerError 

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



accelerometerOptions 

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

选项: 
    frequency:多少毫秒获取一次Acceleration。(数字类型)(默认值:10000) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值