「加速度感測器」(Accelerometer)是iPhone裡頭的特殊感測器之一,也是目前Flash for iPhone裡頭有支援的兩項感測器之一(另一個是GPS定位)。它的使用方式很簡單,讓我們很快地來看一下最基本的使用方式。

「加速度感測器」的使用方式,基本上有四個步驟:

1.判斷支援與否:isSupported

使用Accelerometer.isSupported屬性來判斷目前裝置是否支援加速度感測器。

[code language=”as3″]

if (Accelerometer.isSupported)
{
// 有支援時的相關處理作業
}

[/code]

2.建立感測器物件:Accelerometer

若要使用加速度感測器,就得匯入支援類別:

[code language=”as3″]

import flash.sensor.Accelerometer

[/code]

然後才可以新增加速度感測器物件:

[code language=”as3″]

var acc:Accelerometer;
acc = new Accelerometer;

[/code]

3.加入事件偵聽器:AccelerometerEvent.UPDATE

若要取得加速度感測器的數值,則要先匯入加速度感測器的事件類別:

[code language=”as3″]

import flash.events.AccelerometerEvent;

[/code]

然後再加入AccelerometerEvent.UPDATE的事件偵聽器,並指定事件處理程序:

[code language=”as3″]

acc.addEventListener(AccelerometerEvent.UPDATE, updateAcc);

[/code]

4.提供事件處理程序(Event Handler):

在UPDATE的事件處理程序中,可以從事件物件的屬性取得加速度值:

  • accelerationX:x軸的加速度值(以重力單位g為基準)。x軸是正對裝置畫面來觀看時的左右方向,往右加速度為正值。
  • accelerationY:y軸的加速度值(以重力單位g為基準)。y軸是正對裝置畫面來觀看時的上下方向,往上加速度為正值。
  • accelerationZ:z軸的加速度值(以重力單位g為基準)。z軸是正對裝置畫面來觀看時的貼近和拉遠方向,自己面前貼近的加速度為正值。
  • timestamp:從執行時期被初始化開始算起的事件發生時間,單位是「毫秒」(milliseconds)。p.s.重力1g大約是9.8公尺/秒平方。

事件處理程序的使用方式如下:

[code language=”as3″]

function updateAcc(e:AccelerometerEvent):void {
txtAccX.text = "X" + e.accelerationX.toString();
txtAccY.text = "Y" + e.accelerationY.toString();
txtAccZ.text = "Z" + e.accelerationZ.toString();
}

[/code]

實際範例:

把上面這些程序,直接整合一個完整的程式:

[code language=”as3″]

import flash.sensors.Accelerometer;
import flash.events.AccelerometerEvent;

if (Accelerometer.isSupported) {
var acc:Accelerometer = new Accelerometer();
acc.addEventListener(AccelerometerEvent.UPDATE, updateAcc);
}
else {
txtTitle.text = "抱歉!不支援喔!";
}

function updateAcc(e:AccelerometerEvent):void {
txtAccX.text = "X" + e.accelerationX.toString();
txtAccY.text = "Y" + e.accelerationY.toString();
txtAccZ.text = "Z" + e.accelerationZ.toString();
}

[/code]

不支援加速度感測器

不支援加速度感測器

支援加速度感測器

支援加速度感測器

參考資料:

Accelerometer input:http://help.adobe.com/en_US/as3/dev/WSb2ba3b1aad8a27b036ae443e1221e57e23b-8000.html

圖片授權來源:

蒼銀之星:http://flyking.lobida.com/