パッケージ | flash.sensors |
クラス | public class Accelerometer |
継承 | Accelerometer EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2, Flash Player 10.1, Flash Lite 4 |
注意:
Accelerometer.isSupported
プロパティを使用して、この機能を使用できるかどうかランタイム環境をテストします。Accelerometer クラスとそのメンバーは各 API エントリにリストされたランタイムバージョンにアクセスできますが、ランタイム用の現在の環境によって、この機能が使用できるかどうかが決まります。例えば、Flash Player 10.1 の Accelerometer クラスのプロパティを使用してコードをコンパイルすることはできますが、Accelerometer.isSupported
プロパティを使用して、Accelerometer 機能が現在の Flash Player ランタイムのデプロイ環境で使用できるかどうかをテストする必要があります。Accelerometer.isSupported
がランタイムで true
の場合、Accelerometer は現在サポートされています。
AIR プロファイルのサポート:この機能はモバイルデバイスでのみサポートされます。デスクトップまたは AIR for TV デバイスではサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。
詳細
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
isSupported : Boolean [静的] [読み取り専用]
デバイスで加速度センサーを利用できる場合、isSupported プロパティは true に設定されます。利用できない場合は、false に設定されます。 | Accelerometer | ||
muted : Boolean [読み取り専用]
加速度センサーへのアクセスがユーザーによって拒否されているか(true)、または許可されているか(false)を指定します。 | Accelerometer |
メソッド | 定義元 | ||
---|---|---|---|
新しい Accelerometer インスタンスを作成します。 | Accelerometer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
setRequestedUpdateInterval メソッドは、更新の時間間隔を設定する場合に使用されます。 | Accelerometer | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
加速度センサーがステータスを変更した際に送出されます。 | Accelerometer | |||
update イベントは、加速度センサーからの更新に応答して送出されます。 | Accelerometer |
isSupported | プロパティ |
isSupported:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2, Flash Player 10.1, Flash Lite 4 |
デバイスで加速度センサーを利用できる場合、isSupported
プロパティは true
に設定されます。利用できない場合は、false
に設定されます。
実装
public static function get isSupported():Boolean
例 ( この例の使用方法 )
Accelerometer.isSupported
プロパティを使用して、ランタイムでの加速度センサーのサポートをテストします。現在の環境で加速度センサー機能がサポートされている場合は、Accelerometer オブジェクトにイベントリスナーが追加されます。また、関連するハンドラーによって、テキストフィールドにタイムスタンプと加速度の値が設定されます。この機能がサポートされていない場合は、テキストフィールドに、現在の環境ではこの機能がサポートされていないことが表示されます。
var myTextField:TextField = new TextField(); myTextField.width = 200; addChild(myTextField); var acc1:Accelerometer = new Accelerometer(); var isSupported:Boolean = Accelerometer.isSupported; checksupport(); function checksupport():void { if (isSupported) { myTextField.text = "Accelerometer feature supported"; acc1.addEventListener(AccelerometerEvent.UPDATE, updateHandler); } else { myTextField.text = "Accelerometer feature not supported"; } } function updateHandler(evt:AccelerometerEvent):void { myTextField.text = String("at: " + evt.timestamp + "\n" + "acceleration X: " + evt.accelerationX + "\n" + "acceleration Y: " + evt.accelerationY + "\n" + "acceleration Z: " + evt.accelerationZ); }
muted | プロパティ |
Accelerometer | () | コンストラクター |
public function Accelerometer()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2, Flash Player 10.1, Flash Lite 4 |
新しい Accelerometer インスタンスを作成します。
setRequestedUpdateInterval | () | メソッド |
public function setRequestedUpdateInterval(interval:Number):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2, Flash Player 10.1, Flash Lite 4 |
setRequestedUpdateInterval
メソッドは、更新の時間間隔を設定する場合に使用されます。時間間隔の測定単位はミリ秒です。更新間隔は、電源を節約するための目安としてのみ使用されます。加速度を更新する実際の間隔は、この値より大きかったり小さかったりする可能性があります。更新間隔が変更された場合、登録されたリスナーすべてに影響します。Accelerometer クラスは、setRequestedUpdateInterval()
メソッドを呼び出さずに使用することもできます。この場合、アプリケーションはデバイスのデフォルトの間隔に基づいて更新を受け取ります。
パラメーター
interval:Number — 要求された更新間隔です。interval が 0 に設定されている場合、サポートされる更新間隔の最小値が使用されます。
|
例外
ArgumentError — 指定された interval が 0 未満の場合
|
status | イベント |
flash.events.StatusEvent
プロパティ StatusEvent.type =
flash.events.StatusEvent.STATUS
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2, Flash Player 10.1, Flash Lite 4 |
加速度センサーがステータスを変更した際に送出されます。
注意:一部のデバイスでは、加速度センサーは常に利用できます。このようなデバイスでは、Accelerometer オブジェクトが status
イベントを送出することはありません。
type
プロパティ(status
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
code | オブジェクトのステータスの説明です。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
level | "status" 、"warning" 、"error" など、メッセージのカテゴリです。 |
target | そのステータスをレポートするオブジェクトです。 |
update | イベント |
flash.events.AccelerometerEvent
プロパティ AccelerometerEvent.type =
flash.events.AccelerometerEvent.UPDATE
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2, Flash Player 10.1, Flash Lite 4 |
update
イベントは、加速度センサーからの更新に応答して送出されます。このイベントは、次のような場合に送出されます。
- 新しいリスナー関数が
addEventListener()
を使用して割り当てられたとき。加速度センサーの現在の値を提供するために、登録済みのすべてのリスナーに、このイベントが一度配信されます。 - デバイスで指定された間隔で、加速度センサーの更新がプラットフォームから取得されたとき。
- アプリケーションが加速度センサーの変更を捕捉できなかったとき(例えば、アイドル状態の後、ランタイムが再開したとき)。
type
プロパティ(AccelerometerEvent
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
timestamp | 加速度センサーの更新のタイムスタンプです。 |
accelerationX | G(9.8m/秒/秒)の X 軸の加速度値。 |
accelerationY | G(9.8m/秒/秒)の Y 軸の加速度値。 |
accelerationZ | G(9.8m/秒/秒)の Z 軸の加速度値。 |
update
イベントに基づいて、スプライトを移動します。加速度センサーの update
イベントは、デバイスが移動したことを示します。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.AccelerometerEvent; import flash.sensors.Accelerometer; public class AccelerometerTest extends Sprite { private var ball:Sprite; private var accelerometer:Accelerometer; private var xSpeed:Number = 0; private var ySpeed:Number = 0; private const RADIUS = 20; public final function AccelerometerTest() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; createBall(); if (Accelerometer.isSupported) { accelerometer = new Accelerometer(); accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler); stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler); } } private final function createBall():void { ball = new Sprite(); ball.graphics.beginFill(0xFF0000); ball.graphics.drawCircle(0, 0, RADIUS); ball.cacheAsBitmap = true; ball.x = stage.stageWidth / 2; ball.y = stage.stageHeight / 2; addChild(ball); } private final function enterFrameHandler(event:Event):void { event.stopPropagation(); moveBall(); } private final function moveBall():void { var newX:Number = ball.x + xSpeed; var newY:Number = ball.y + ySpeed; if (newX < 20) { ball.x = RADIUS; xSpeed = 0; } else if (newX > stage.stageWidth - RADIUS) { ball.x = stage.stageWidth - RADIUS; xSpeed = 0; } else { ball.x += xSpeed; } if (newY < RADIUS) { ball.y = RADIUS; ySpeed = 0; } else if (newY > stage.stageHeight - RADIUS) { ball.y = stage.stageHeight - RADIUS; ySpeed = 0; } else { ball.y += ySpeed; } } private final function accUpdateHandler(event:AccelerometerEvent):void { xSpeed -= event.accelerationX * 2; ySpeed += event.accelerationY * 2; } } }
Tue Jun 12 2018, 10:34 AM Z