天天看點

《PhoneGap移動應用開發手冊》——1.2節使用加速計檢測裝置的移動

本節書摘來自異步社群《phonegap移動應用開發手冊》一書中的第1章,第1.2節使用加速計檢測裝置的移動,作者 【英】matt gifford,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

1.2 使用加速計檢測裝置的移動

phonegap移動應用開發手冊

加速計可捕捉裝置在x,y,z這3個空間軸上的移動。加速計是一種移動傳感器,它能檢測目前裝置位置的相對移動變化。

實作步驟

使用phonegap api提供的加速計相關函數檢測裝置的回報資訊。

(1)首先,建立html初始化架構,并添加需求腳本檔案cordova-2.0.0.js的引用。

《PhoneGap移動應用開發手冊》——1.2節使用加速計檢測裝置的移動

(2)在cordova javascript引用的下面,建立一個javascript标簽塊,進行下一步之前,定義一個確定裝置準備就緒及本地代碼加載完成的偵聽事件。

《PhoneGap移動應用開發手冊》——1.2節使用加速計檢測裝置的移動

(4)加入onsuccess函數處理從加速計傳回的資訊。

(5)定義accelerometer div元素對應變量,儲存生成的加速計結果。

(6)接下來,将accerlation對象的傳回值賦給accelerometer via元素中的html以顯示給使用者,将acceleration對象通路的可用屬性指派給字元串變量。

《PhoneGap移動應用開發手冊》——1.2節使用加速計檢測裝置的移動

實作原理

通過注冊deviceready事件的偵聽事件,保證在javascript代碼執行時本地的phonegap代碼已經執行完畢。一旦準備就緒,程式将調用加速計api中的getcurrentacceleration函數,并加載兩種方法,分别處理成功傳回和錯誤資訊。

onsuccess函數傳回的加速計資訊,包含以下4種屬性:

acceleration.x:number類型變量,機關是m/s^2,用于測量裝置在x軸方向上的加速度。也就是當螢幕垂直放置時,裝置從左向右的移動。從左向右移動時,加速度值為正,反之,為負。

acceleration.y:number類型變量,機關是m/s^2,用于測量裝置在y軸方向上的加速度。也就是當螢幕垂直放置時,裝置從下向上方向的移動。當裝置往上移動時,擷取的加速度值為正值,從上往下移動時則為負值。

acceleration.z:number類型變量,機關是m/s^2,用于測量裝置在z軸方向上的運動。也就是裝置垂直方向的變化。當裝置朝向天空移動時,擷取的加速度為正值,當裝置向地面方面移動時,加速度為負值。

acceleration.timestamp:domtimestamp對象,用于測量從程式初始化開始運作的時間(毫秒),可以用來存儲、更新以及追蹤從上次加速計更新開始時間内的變化。

圖1.2顯示了x,y,z軸與裝置的關系。

《PhoneGap移動應用開發手冊》——1.2節使用加速計檢測裝置的移動

之前提到的加速度對象傳回的acceleration.x、acceleration.y和acceleration.z值,都受到重力加速度的影響,其值精确到9.81 m/s^2。

相關内容

從裝置擷取加速度資料在一些移動手機遊戲的開發中必不可少,這些遊戲往往需要平衡控制,以及對裝置轉向、視圖控制、裝置傾斜的移動檢測。

讀者可在下面位址了解getcurrentacceleration方法,及擷取加速計資料的官方cordova文檔:

``

繼續閱讀