自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PhoneGap API介紹:Accelerometer

移動(dòng)開(kāi)發(fā)
本文將介紹PhoneGap API——Accelerometer:點(diǎn)擊進(jìn)入設(shè)備的運(yùn)動(dòng)傳感器采集設(shè)備在x、y、z方向上的動(dòng)作。

方法

accelerometer.getCurrentAcceleration

accelerometer.watchAcceleration

accelerometer.clearWatch

參數(shù)

accelerometerSuccess

accelerometerError

accelerometerOptions

對(duì)象(只讀):

Acceleration

accelerometer.getCurrentAcceleration

返回當(dāng)前沿x、y和z方向的加速度。

  1. navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError); 

說(shuō)明

加速計(jì)是檢測(cè)設(shè)備在當(dāng)前方向上所做相對(duì)運(yùn)動(dòng)變化(增、減量)的運(yùn)動(dòng)傳感器。加速計(jì)可以檢測(cè)沿X、Y和Z軸的三維運(yùn)動(dòng)。

加速度數(shù)據(jù)通過(guò)accelerometerSuccess回調(diào)函數(shù)返回。

支持的平臺(tái)

Android

BlackBerry WebWorks (OS 5.0或更高版本)

iPhone

簡(jiǎn)單的范例

  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: 返回當(dāng)前加速度數(shù)據(jù)的快照 
  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: 返回加速度數(shù)據(jù)失敗 
  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> 

iPhone的特異情況

iPhone沒(méi)有獲取在任何給定點(diǎn)當(dāng)前加速度數(shù)據(jù)的概念。

你必須通過(guò)給定時(shí)間間隔查看加速度并獲得數(shù)據(jù)。

因此,getCurrentAcceleration函數(shù)會(huì)返回從phoneGap watchAccelerometer調(diào)用開(kāi)始后的最近一個(gè)返回值。

accelerometer.watchAcceleration

在固定的時(shí)間間隔獲取沿x、y和z軸的加速度。

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

說(shuō)明

加速計(jì)是檢測(cè)設(shè)備在當(dāng)前方向上所做相對(duì)運(yùn)動(dòng)變化(增、減量)的動(dòng)作傳感器。加速計(jì)可以檢測(cè)沿X、Y和Z軸的三維運(yùn)動(dòng)。

accelerometer.watchAcceleration每隔固定時(shí)間就獲取一次設(shè)備的當(dāng)前加速度。每次取得加速度后,accelerometerSuccess回調(diào)函數(shù)會(huì)被執(zhí)行。通過(guò)acceleratorOptions對(duì)象的frequency參數(shù)可以設(shè)定以毫秒為單位的時(shí)間間隔。

返回的watch id是加速度計(jì)監(jiān)視周期的引用,可以通過(guò)accelerometer.clearWatch調(diào)用該watch ID以停止對(duì)加速度計(jì)的監(jiān)視。

支持的平臺(tái)

Android

BlackBerry WebWorks (OS 5.0或更高版本)

iPhone

簡(jiǎn)單的范例

  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. var options = { frequency: 3000 };  // 每隔3秒更新一次 
  11.      
  12. 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 是當(dāng)前“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.     // 開(kāi)始監(jiān)視加速度 
  21.     function startWatch() { 
  22.      
  23.     // 每隔3秒鐘更新一次加速度數(shù)據(jù) 
  24.     var options = { frequency: 3000 }; 
  25.      
  26.     watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); 
  27.     } 
  28.      
  29.     // 停止監(jiān)視加速度 
  30.     function stopWatch() { 
  31.         if (watchID) { 
  32.             navigator.accelerometer.clearWatch(watchID); 
  33.             watchID = null
  34.         } 
  35.     } 
  36.      
  37.     // onSuccess: 獲取當(dāng)前加速度數(shù)據(jù)的快照 
  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的特異情況

在請(qǐng)求的時(shí)間間隔,PhoneGap將調(diào)用success回調(diào)指向的函數(shù),并傳遞加速度計(jì)數(shù)據(jù)。

不過(guò),PhoneGap將對(duì)設(shè)備的請(qǐng)求間隔時(shí)間限制為最小40ms,***1000ms。

例如,如果你設(shè)定每隔3秒(3000毫秒)請(qǐng)求一次,PhoneGap仍然每隔1秒請(qǐng)求一次設(shè)備,但是每隔3秒才調(diào)用一次success回調(diào)函數(shù)。

accelerometer.clearWatch

停止watch ID參數(shù)指向的加速度監(jiān)視。

  1. navigator.accelerometer.clearWatch(watchID); 

watchID:由accelerometer.watchAcceleration返回的引用標(biāo)識(shí)ID。

支持的平臺(tái)

Android

BlackBerry WebWorks (OS 5.0或更高版本)

iPhone

簡(jiǎn)單的范例

  1. var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); 
  2.  
  3. // ... 后續(xù)處理 ... 
  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 是當(dāng)前“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.     // 開(kāi)始監(jiān)視加速度 
  21.     function startWatch() { 
  22.      
  23.         // 每隔3秒鐘更新一次加速度數(shù)據(jù) 
  24.         var options = { frequency: 3000 }; 
  25.         watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); 
  26.     } 
  27.      
  28.     // 停止監(jiān)視加速度 
  29.     function stopWatch() { 
  30.         if (watchID) { 
  31.             navigator.accelerometer.clearWatch(watchID); 
  32.             watchID = null
  33.         } 
  34.     } 
  35.      
  36.     // onSuccess: 獲取當(dāng)前加速度數(shù)據(jù)的快照 
  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 onclick="stopWatch();">Stop Watching</button> 
  55. </body> 
  56. </html> 

Acceleration

包含特定時(shí)間點(diǎn)采集到的加速計(jì)數(shù)據(jù)。

屬性

x:在X軸的運(yùn)動(dòng)量,[0, 1]范圍(數(shù)字類型)

y:在Y軸的運(yùn)動(dòng)量,[0, 1]范圍(數(shù)字類型)

z:在Z軸的運(yùn)動(dòng)量,[0, 1]范圍(數(shù)字類型)

timestamp:以毫秒為單位的創(chuàng)建時(shí)間戳。(DOMTimeStamp類型)

說(shuō)明

這個(gè)對(duì)象是由phoneGap創(chuàng)建和填充,并由Acce這個(gè)對(duì)象是由PhoneGap創(chuàng)建和填充,并由Accelerometer的方法返回。

支持的平臺(tái)

Android

BlackBerry WebWorks (OS 5.0或更高版本)

iPhone

簡(jiǎn)單的范例

  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: 獲得加速度數(shù)據(jù)的快照 
  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回調(diào)函數(shù)。

  1. function(acceleration) { 
  2.    // 進(jìn)一步處理 

參數(shù)

acceleration: 在某一時(shí)刻的加速度(Acacceleration:在某一時(shí)刻的加速度。(Acceleration對(duì)象類型)

  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回調(diào)函數(shù)。

  1. function() { 
  2.    // 錯(cuò)誤處理 

accelerometerOptions

定制檢索加速度計(jì)的可選參數(shù)。

選項(xiàng)

frequency:多少毫秒獲取一次Acceleration。(數(shù)字類型)(默認(rèn)值:10000)

責(zé)任編輯:佚名 來(lái)源: PhoneGap中國(guó)
相關(guān)推薦

2011-12-30 14:16:02

AccelerometPhoneGap AP視頻

2011-12-20 11:20:46

PhoneGap APCompass

2011-12-19 16:09:32

PhoneGap APCamera

2011-12-20 15:34:55

PhoneGap APConnection

2011-12-20 17:15:52

PhoneGap APEvents

2011-12-22 10:33:39

PhoneGap APNotificatio

2011-12-22 10:45:32

PhoneGap APStorage

2011-12-21 21:56:45

PhoneGap APFile

2011-12-19 16:26:39

PhoneGap APCapture

2011-12-20 13:32:52

PhoneGap APContacts

2011-12-20 16:09:57

PhoneGap APDevice

2011-12-22 09:27:36

PhoneGap APGeolocation

2011-12-22 09:54:40

PhoneGap APMedia

2011-12-30 13:47:57

PhoneGap AP視頻Contacts

2011-12-30 14:09:32

PhoneGap APCompass視頻

2011-12-30 13:59:38

PhoneGap APDevice視頻

2011-12-30 14:05:17

PhoneGap APConnection視頻

2011-12-30 14:13:05

PhoneGap APCamera視頻

2011-09-13 13:17:27

PhoneGap AP

2011-07-05 17:29:53

PhoneGapevents
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)