flash.sensorsAccelerometer Accelerometer クラスは、デバイスのモーションセンサーによって検出されたアクティビティに基づいてイベントを送出します。Accelerometer クラス flash.events:EventDispatcher Accelerometer クラスは、デバイスのモーションセンサーによって検出されたアクティビティに基づいてイベントを送出します。このデータは、デバイスの位置または 3D 軸に沿った移動を表します。デバイスが移動したとき、センサーはこの移動を検出し、アクセラレーションデータを返します。Accelerometer クラスは、加速度センサーがサポートされているかどうかを照会するメソッドを提供します。また、加速度センサーイベントが送出される頻度を設定するメソッドも提供します。

注意:Accelerometer.isSupported プロパティを使用して、この機能を使用できるかどうかランタイム環境をテストします。Accelerometer クラスとそのメンバーは各 API エントリにリストされたランタイムバージョンにアクセスできますが、ランタイム用の現在の環境によって、この機能が使用できるかどうかが決まります。例えば、Flash Player 10.1 の Accelerometer クラスのプロパティを使用してコードをコンパイルすることはできますが、Accelerometer.isSupported プロパティを使用して、Accelerometer 機能が現在の Flash Player ランタイムのデプロイ環境で使用できるかどうかをテストする必要があります。Accelerometer.isSupported がランタイムで true の場合、Accelerometer は現在サポートされています。

AIR プロファイルのサポート:この機能はモバイルデバイスでのみサポートされます。デスクトップまたはテレビ用 AIR デバイスではサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

次の例では、加速度センサーの 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; } } }
isSupportedflash.events.AccelerometerEventMichael Chaize:AIR and the AccelerometerMichael Chaize:Become an AIR Pilotstatus 加速度センサーがステータスを変更した際に送出されます。flash.events.StatusEvent.STATUSflash.events.StatusEvent 加速度センサーがステータスを変更した際に送出されます。

注意:一部のデバイスでは、加速度センサーは常に利用できます。このようなデバイスでは、Accelerometer オブジェクトが status イベントを送出することはありません。

update update イベントは、加速度センサーからの更新に応答して送出されます。flash.events.AccelerometerEvent.UPDATEflash.events.AccelerometerEvent update イベントは、加速度センサーからの更新に応答して送出されます。このイベントは、次のような場合に送出されます。

  • 新しいリスナー関数が addEventListener() を使用して割り当てられたとき。加速度センサーの現在の値を提供するために、登録済みのすべてのリスナーに、このイベントが一度配信されます。
  • デバイスで指定された間隔で、加速度センサーの更新がプラットフォームから取得されたとき。
  • アプリケーションが加速度センサーの変更を捕捉できなかったとき(例えば、アイドル状態の後、ランタイムが再開したとき)。

Accelerometer 新しい Accelerometer インスタンスを作成します。 新しい Accelerometer インスタンスを作成します。 setRequestedUpdateInterval setRequestedUpdateInterval メソッドは、更新の時間間隔を設定する場合に使用されます。指定された interval が 0 未満の場合 ArgumentErrorArgumentErrorintervalNumber要求された更新間隔です。interval が 0 に設定されている場合、サポートされる更新間隔の最小値が使用されます。 setRequestedUpdateInterval メソッドは、更新の時間間隔を設定する場合に使用されます。時間間隔の測定単位はミリ秒です。更新間隔は、電源を節約するための目安としてのみ使用されます。加速度を更新する実際の間隔は、この値より大きかったり小さかったりする可能性があります。更新間隔が変更された場合、登録されたリスナーすべてに影響します。Accelerometer クラスは、setRequestedUpdateInterval() メソッドを呼び出さずに使用することもできます。この場合、アプリケーションはデバイスのデフォルトの間隔に基づいて更新を受け取ります。 isSupported デバイスで加速度センサーを利用できる場合、isSupported プロパティは true に設定されます。利用できない場合は、false に設定されます。Boolean デバイスで加速度センサーを利用できる場合、isSupported プロパティは true に設定されます。利用できない場合は、false に設定されます。 次の例は、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 加速度センサーへのアクセスがユーザーによって拒否されているか(true)、または許可されているか(false)を指定します。Boolean 加速度センサーへのアクセスがユーザーによって拒否されているか(true)、または許可されているか(false)を指定します。この値が変わると、status イベントが送出されます。 status
Geolocation Geolocation クラスは、デバイスのロケーションセンサーに応答してイベントを送出します。flash.events:EventDispatcher Geolocation クラスは、デバイスのロケーションセンサーに応答してイベントを送出します。

デバイスでジオロケーションがサポートされている場合、このクラスを使用して、デバイスの最新の位置情報を取得できます。位置情報は、緯度と経度の座標形式(WGS-84座標系)でデバイスに表示されます。デバイスの位置が移動したときに、その移動(変更)に関する更新を受信できます。デバイスでこの機能がサポートされている場合、位置に関する最新の変更について、高度、精度、ヘッダー、速度およびタイムスタンプの情報を取得できます。

AIR プロファイルのサポート:この機能はモバイルデバイスでのみサポートされます。デスクトップまたはテレビ用 AIR デバイスではサポートされません。Geolocation.isSupported プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

次の例では、緯度、経度、水平精度に関するジオロケーションの update イベントを受信したときに、受信したそれらのイベントをアプリケーションに表示します。 package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.GeolocationEvent; import flash.sensors.Geolocation; import flash.text.TextField; import flash.text.TextFormat; public class GeolocationTest extends Sprite { private var geo:Geolocation; private var log:TextField; public function GeolocationTest() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; setUpTextField(); if (Geolocation.isSupported) { geo = new Geolocation(); geo.setRequestedUpdateInterval(100); geo.addEventListener(GeolocationEvent.UPDATE, geolocationUpdateHandler); } else { log.text = "No geolocation support."; } } private function geolocationUpdateHandler(event:GeolocationEvent):void { log.text = "latitude:" + event.latitude.toString() + "°\n"; log.appendText("longitude:" + event.longitude.toString() + "°\n"); log.appendText("horizontal accuracy:" + event.horizontalAccuracy.toString() + " m"); } private function setUpTextField():void { log = new TextField(); var format:TextFormat = new TextFormat("_sans", 24); log.defaultTextFormat = format; log.border = true; log.wordWrap = true; log.multiline = true; log.x = 10; log.y = 10; log.height = stage.stageHeight - 20; log.width = stage.stageWidth - 20; addChild(log); } } }
Cristophe Coenraets:Mulit-user Google Maps Collaborationstatus Geolocation オブジェクトは、ロケーションセンサーへのアクセスがユーザーによって変更されたときに status イベントを送出します。flash.events.StatusEvent.STATUSflash.events.StatusEvent Geolocation オブジェクトは、ロケーションセンサーへのアクセスがユーザーによって変更されたときに status イベントを送出します。例えば、デバイスのプロンプトに応答して、アプリケーションによるロケーションデータへのアクセスをユーザーが禁止した場合、Geolcation オブジェクトによって status イベントが送出されます。ロケーションセンサーを使用できない状態にステータスが変更されると、Geolocation の muted プロパティは true に設定されます。 mutedupdate update イベントは、ロケーションセンサーからの更新に応答して送出されます。flash.events.GeolocationEvent.UPDATEflash.events.GeolocationEvent update イベントは、ロケーションセンサーからの更新に応答して送出されます。このイベントは、次のような場合に送出されます。

  • 新しいリスナー関数が addEventListener() を使用して割り当てられたとき。ロケーションセンサーの現在の値を提供するために、登録済みのすべてのリスナーに、このイベントが一度配信されます。
  • デバイスで指定された間隔で、位置の更新がプラットフォームから取得されたとき。
  • アプリケーションが位置の変更を捕捉できなかったとき(例えば、スリープ状態の後、アプリケーションのスリープが解除されたとき)。

注意:GPS ユニットが含まれていない第 1 世代の iPhone では、update イベントはごくまれにしか送出されません。このデバイスでは、Geolocation オブジェクトが最初に 1 つまたは 2 つの update イベントを送出します。その後、情報が大幅に変更されたときに update イベントを送出します。

Geolocation 新しい Geolocation インスタンスを作成します。 新しい Geolocation インスタンスを作成します。 setRequestedUpdateInterval 更新の時間間隔をミリ秒単位で設定します。指定された interval が 0 未満の場合 ArgumentErrorArgumentErrorintervalNumber要求された更新間隔。interval <= 0 の場合、このメソッドを呼び出しても、効果はありません。 更新の時間間隔をミリ秒単位で設定します。更新間隔は、電源を節約するための目安としてのみ使用されます。ロケーションを更新する実際の間隔は、この値より大きかったり小さかったりすることがあります。このメソッドを使用して更新間隔を変更すると、その変更は登録済みのすべての update イベントリスナーに影響します。Geolocation クラスは、setRequestedUpdateInterval メソッドを呼び出さずに使用することもできます。この場合、プラットフォームはデフォルトの間隔に基づいて更新を返します。

注意:GPS ユニットが含まれていない第 1 世代の iPhone では、update イベントはごくまれにしか送出されません。このデバイスでは、Geolocation オブジェクトが最初に 1 つまたは 2 つの update イベントを送出します。その後、情報が大幅に変更されたときに update イベントを送出します。

isSupported デバイスでロケーションセンサーを利用できる場合は true、利用できない場合は false。Boolean デバイスでロケーションセンサーを利用できる場合は true、利用できない場合は falsemuted ジオロケーションへのアクセスがユーザーによって拒否されているか(true)、または許可されているか(false)を指定します。Boolean ジオロケーションへのアクセスがユーザーによって拒否されているか(true)、または許可されているか(false)を指定します。この値が変わると、status イベントが送出されます。 status