Accelerometer クラスの続きです。今回は少し細かい点をいくつか。
Accelerometer.muted
まず、デバイスによって、アプリケーションからの加速度センサー利用の許可/不許可を切り替えられるものがあるようです。その場合、Accelerometer.isSupported の値が true でも、加速度センサーが利用できない!という状況が起きる可能性があります。
そこで Accelerometer には muted という属性が用意されています。Accelerometer.muted の値が false であれば加速度センサーの使用が許可されている、true であれば拒否されている、という意味です。
アプリケーション実行中に Accelerometer.muted の値が変更された場合には status イベントが発行されることになっています。加速度センサーの状態の変更を検知したい場合は、staus イベントのハンドラを Accelerometer のインスタンスに追加しましょう。Accelerometer が常に利用可能なデバイスでは status イベントが一切発行されないという状況もあるかもですが。
加速度情報更新のタイミング
Flash アプリケーションは AccelerometerEvent.UPDATE イベントを通じて加速度センサーからの更新情報を知ることができます。では、いつ AccelerometerEvent.UPDATE イベントが発生するのか?というと、以下の 3 つの状況になったときだそうです。
- Accelerometer のインスタンスに新しいリスナー関数が追加された (その際、全ての登録されたリスナー関数にイベントが渡される)
- デバイスの加速度センサーから更新情報が (ある一定の間隔で) 渡された
- Flash アプリケーションが Accelerometer から更新を受け取れない状態から復帰した (例:一時的にアイドル状態になっていた)
