パッケージ | flash.ui |
クラス | public final class GameInputDevice |
継承 | GameInputDevice Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 3.7 |
GameInputDevice
クラスは、ゲームによく使用される単一の入力デバイスを表します。
このクラスには、次の目的で使用できるメソッドとプロパティが含まれます。
-
入力デバイスを有効または無効にします。初期状態では、デバイスはデフォルトで無効です(
enabled
がfalse
に設定されています)。デバイスからコントロール値を取得する前に、enabled
をtrue
に設定して、明示的にデバイスを有効化する必要があります。 -
入力デバイスの名前と ID を取得します。
name
プロパティとid
プロパティを組み合わせることで、デバイスが一意に特定されます。Android デバイスの場合は、デバイス製造元がこれらの値を提供します。iOS デバイスの場合は、デバイスに接続するたびにid
が変わることがあります。 -
入力デバイス上のコントロールを列挙します。デバイス上の物理的コントロールが論理的な
GameInputControl
オブジェクトにマップされ、リストに保存されます。リスト内のコントロールには、getControlAt()
メソッドを使用してアクセスします。 -
サンプリングされたコントロール値のキャッシュを管理します。デバイスオブジェクトから直接コントロール値のセットをサンプリングすることは、コントロール値を取得する 3 つの方法のうちの 1 つです(他の 2 つの方法では、
GameInputControl
クラスのvalue
メソッドを使用します。これらの方法については、そのメソッドの説明の中で示します)。サンプルのキャッシュは、アプリケーションのフレームレートよりも高速なレートでコントロール値にアクセスする必要がある場合に便利です。
このクラスに、GameInputEvent.DEVICE_REMOVED
イベントのリスナーを必ず設定してください。このリスナーによって、デバイスが予期せず切断されたり電源オフになったりした場合に対処できます。デバイスが切断されたときは、GameInputDevice
オブジェクトを解放してください。関連するデバイスが切断された後はこのオブジェクトが有効ではなくなるからです。
Android デバイスでは、削除してから再接続した場合も、最初に接続されたときの ID が維持されます。この ID を照合することで、論理的にデバイスに再接続できます。iOS デバイスの場合は、デバイスに再接続すると ID が変わることがあります。
注意:リスト内のデバイスの順序は信頼できません(この順序は、デバイスの追加時および削除時に変更される可能性があります)。
詳しくは、Adobe Air Developer Center の記事「Game controllers on Adobe AIR」を参照してください。
Android の場合、この機能は Android OS バージョン 4.1 以降に対応しており、必要最低バージョンは SWF バージョン 20 および名前空間 3.7 です。iOS の場合、この機能は iOS バージョン 9.0 以降に対応しており、必要最低バージョンは SWF バージョン 34 および名前空間 23.0 です。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
enabled : Boolean
このデバイスを有効または無効にします。 | GameInputDevice | ||
id : String [読み取り専用]
このデバイスの ID を返します。 | GameInputDevice | ||
name : String [読み取り専用]
このデバイスの名前を返します。 | GameInputDevice | ||
numControls : int [読み取り専用]
このデバイスのコントロールの数を返します。 | GameInputDevice | ||
sampleInterval : int
コントロール値を取得するレート(ミリ秒単位)を指定します。 | GameInputDevice |
メソッド | 定義元 | ||
---|---|---|---|
キャッシュされたサンプル値を ByteArray に書き込みます。 | GameInputDevice | ||
デバイスから特定のコントロールを取得します。 | GameInputDevice | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
サンプリングされた値のキャッシュの保存を開始するようにこのデバイスに要求します。 | GameInputDevice | ||
サンプルのキャッシュを停止します。 | GameInputDevice | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
定数 | 定義元 | ||
---|---|---|---|
MAX_BUFFER_SIZE : int = 32000 [静的]
サンプリングされたコントロール値のキャッシュに使用するバッファーの最大サイズを指定します。 | GameInputDevice |
enabled | プロパティ |
enabled:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 3.7 |
このデバイスを有効または無効にします。デバイスはデフォルトで無効です。デバイスのコントロール値へのアクセスやコントロール値のサンプリングを行うには、デバイスを有効にします。また、デバイスや個々のコントロールがイベントを送出するのは、デバイスが有効なときだけです。
取り外されたデバイスは無効になります。無効になったデバイスに関する情報を取得することはできますが、コントロール値にアクセスしたりキャッシュを開始したりすることはできません。また、削除されたデバイスを有効にすることはできません。デバイスが削除されると、enabled
は常に false
を返します。
実装
public function get enabled():Boolean
public function set enabled(value:Boolean):void
id | プロパティ |
name | プロパティ |
numControls | プロパティ |
sampleInterval | プロパティ |
sampleInterval:int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 3.7 |
コントロール値を取得するレート(ミリ秒単位)を指定します。デフォルトは 0 です。これは、フレームごとに値が更新されることを表します。sampleValue
に高い値を設定すると、GameInput ではアプリケーションのフレームレートよりも高速なレートでコントロール値がサンプリングされます。
フレームごとよりも高い頻度で値を更新できますが、1 コントロールあたり送出されるイベントは 1 つのみです。そのため、1 フレームで値の更新が 2 回行われると、1 つの変更イベントのみが送出され、最新の値のみを取得できます。
最新の値以外の値も取得するには、このクラスのキャッシュ関連メソッドを使用してサンプル値をキャッシュできます。サンプリングされた値をキャッシュする場合、このプロパティは値がキャッシュに書き込まれる頻度を指定します。
デフォルト値: 0。
実装
public function get sampleInterval():int
public function set sampleInterval(value:int):void
例外
IOError — このプロパティの設定時にデバイスが無効な場合。
| |
RangeError — sampleInterval が 0 未満の場合。
|
getCachedSamples | () | メソッド |
public function getCachedSamples(data:ByteArray, append:Boolean = false):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 3.7 |
キャッシュされたサンプル値を ByteArray
に書き込みます。キャッシュされたサンプル値は、取得順で(古い値を先に、新しい値を後に)ByteArray
に書き込まれます。
このメソッドは、ByteArray
に書き込まれたキャッシュされたサンプル値の数を返します(値そのものではありません)。append
パラメーターが false
(デフォルト)の場合は、ByteArray
がクリアされてから、サンプル値がキャッシュから書き込まれます。append
が true の場合は、サンプル値が ByteArray
に追加され、古い値も保持されます。サンプル値の追加は次のような場合に行います。
- 特定の数の値を使用できるように維持する必要がある場合。
- キャッシュのサイズを超える履歴を維持する必要がある場合。
append
が true
の場合、アプリケーション側で ByteArray
をクリアする必要があります。ByteArray
がクリアされなければ、サイズが拡大し続け、アプリケーションのクラッシュにつながるおそれがあります。
サンプル値が ByteArray
に書き込まれた後にキャッシュがクリアされます。
このメソッドの呼び出し時にデバイスが無効な場合は、IOError
がスローされます。
パラメーター
data:ByteArray — 取得されたデータを保持する ByteArray です。倍精度浮動小数点数として書き込まれたサンプル値が設定されます。ByteArray は、コントロールの場所で変更が検出されない場合のコントロールの値として NaN as を保持します。
| |
append:Boolean (default = false ) — ByteArray へのデータの書き込み方法を示すフラグです。true の場合、サンプリングされた値は、配列の末尾に書き込まれます。false の場合は、ByteArray の内容が削除された後に、データが配列に書き込まれます。デフォルト値は false です。
|
int — ByteArray に書き込むサンプルの数です(値ではありません)。
|
例外
ArgumentError — data が null の場合。
| |
IOError — このメソッドが呼び出されたときにデバイスが無効な場合。
|
getControlAt | () | メソッド |
public function getControlAt(i:int):GameInputControl
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 3.7 |
デバイスから特定のコントロールを取得します。
GameInputDevice は、デバイス上のコントロールをリストに格納します。デバイス上の各コントロールにアクセスするには、getControlAt()
メソッドを使用します。
インデックス内のコントロールの順序は、デバイスが追加または削除されるごとに変更される可能性があります。GameInputControl
オブジェクトの id
プロパティをチェックして、特定のコントロールを照会できます。
デバイスが有効でない場合でもコントロールを取得することはできますが、無効になっているデバイスからコントロール値を読み取ることはできません。この機能を使用して、コントロールのプロパティを読み取ってから、コントロールが属するデバイスを有効にすることができます。この機能は、デバイスを有効にする前にそのデバイスがアプリケーションに適しているかどうかを判断するために使用できます。
パラメーター
i:int — GameInputControl リストにある GameInputControl のインデックス位置です。
|
GameInputControl — 指定したインデックス位置にある GameInputControl オブジェクトです。
|
例外
RangeError — インデックスが 0 未満または (numControls - 1) より大きい場合。
|
startCachingSamples | () | メソッド |
public function startCachingSamples(numSamples:int, controls:Vector.<String>):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 3.7 |
サンプリングされた値のキャッシュの保存を開始するようにこのデバイスに要求します。sampleInterval
プロパティは、サンプリングの頻度を示します。numSamples
パラメーターでは、キャッシュするサンプルの数を指定します。controls
パラメーターでは、サンプリングするコントロールの ID 値を指定します。
コントロール値は、指定した順序でキャッシュされます。サンプリングされた値は、getCachingSamples
メソッドを呼び出して取得します。
サンプリングされた値のキャッシュに必要なメモリが getCachingSamples
定数に指定された値よりも大きい場合、このメソッドは MemoryError
をスローします。このメソッドの呼び出し前にデバイスが有効になっていない場合は、IOError
がスローされます。
パラメーター
numSamples:int — キャッシュに保存するサンプル数です。サンプルを取得する際には、常に numSamples 以下の数が取得されます。
| |
controls:Vector.<String> — String のベクターです。各 String はコントロールの ID です。サンプルはこのベクターと同じ順序で書き込まれます。
|
例外
RangeError — numSamples が 0 以下の場合、または controls のエントリが 0 未満か (numControls - 1) より大きい場合。
| |
ArgumentError — コントロールが null である場合、または少なくとも 1 つのエントリが含まれない場合、または無効なエントリが含まれる場合。
| |
IOError — このメソッドが、無効になっているデバイスに対して呼び出された場合。
| |
MemoryError — キャッシュサイズ (number of values * samples) が MAX_BUFFER_SIZE よりも大きい場合。
|
stopCachingSamples | () | メソッド |
MAX_BUFFER_SIZE | 定数 |
public static const MAX_BUFFER_SIZE:int = 32000
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 3.7 |
サンプリングされたコントロール値のキャッシュに使用するバッファーの最大サイズを指定します。startCachingSamples
が指定したよりも多くのメモリを必要とするサンプルを返す場合は、メモリエラーがスローされます。
Tue Jun 12 2018, 10:34 AM Z