Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: サーバーからデータを取得しています...
サーバーからデータを取得しています...
flash.ui 

GameInputDevice  - AS3

パッケージflash.ui
クラスpublic final class GameInputDevice
継承GameInputDevice Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 3.7

GameInputDevice クラスは、ゲームによく使用される単一の入力デバイスを表します。

このクラスには、次の目的で使用できるメソッドとプロパティが含まれます。

  • 入力デバイスを有効または無効にします。初期状態では、デバイスはデフォルトで無効です(enabledfalse に設定されています)。デバイスからコントロール値を取得する前に、enabledtrue に設定して、明示的にデバイスを有効化する必要があります。
  • 入力デバイスの名前と 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 エレメント



パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。
Object
      enabled : Boolean
このデバイスを有効または無効にします。
GameInputDevice
      id : String
[読み取り専用] このデバイスの ID を返します。
GameInputDevice
      name : String
[読み取り専用] このデバイスの名前を返します。
GameInputDevice
      numControls : int
[読み取り専用] このデバイスのコントロールの数を返します。
GameInputDevice
      sampleInterval : int
コントロール値を取得するレート(ミリ秒単位)を指定します。
GameInputDevice
パブリックメソッド
 メソッド定義元
  
    getCachedSamples(data:ByteArray, append:Boolean = false):int
キャッシュされたサンプル値を ByteArray に書き込みます。
GameInputDevice
  
デバイスから特定のコントロールを取得します。
GameInputDevice
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
    startCachingSamples(numSamples:int, controls:Vector.<String>):void
サンプリングされた値のキャッシュの保存を開始するようにこのデバイスに要求します。
GameInputDevice
  
サンプルのキャッシュを停止します。
GameInputDevice
 Inherited
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
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

プロパティ 
id:String  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 3.7

このデバイスの ID を返します。デバイスは ID によって区別できます。

注意:Android デバイスの場合は、デバイス製造元がデバイス ID を提供します。iOS デバイスの場合は、デバイスに再接続すると ID が変わることがあります。



実装
    public function get id():String
    

name

プロパティ 
name:String  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 3.7

このデバイスの名前を返します。名前によってデバイスのタイプを特定できます。

注意:デバイスの名前は、デバイス製造会社によって設定されます。



実装
    public function get name():String
    

numControls

プロパティ 
numControls:int  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 3.7

このデバイスのコントロールの数を返します。



実装
    public function get numControls():int
    

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 に追加され、古い値も保持されます。サンプル値の追加は次のような場合に行います。

  • 特定の数の値を使用できるように維持する必要がある場合。
  • キャッシュのサイズを超える履歴を維持する必要がある場合。
重要:appendtrue の場合、アプリケーション側で ByteArray をクリアする必要があります。ByteArray がクリアされなければ、サイズが拡大し続け、アプリケーションのクラッシュにつながるおそれがあります。

サンプル値が ByteArray に書き込まれた後にキャッシュがクリアされます。

このメソッドの呼び出し時にデバイスが無効な場合は、IOError がスローされます。

パラメーター

data:ByteArray — 取得されたデータを保持する ByteArray です。倍精度浮動小数点数として書き込まれたサンプル値が設定されます。ByteArray は、コントロールの場所で変更が検出されない場合のコントロールの値として NaN as を保持します。
 
append:Boolean (default = false)ByteArray へのデータの書き込み方法を示すフラグです。true の場合、サンプリングされた値は、配列の末尾に書き込まれます。false の場合は、ByteArray の内容が削除された後に、データが配列に書き込まれます。デフォルト値は false です。

戻り値
intByteArray に書き込むサンプルの数です(値ではありません)。

例外
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

()メソッド 
public function stopCachingSamples():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 3.7

サンプルのキャッシュを停止します。コントロール上の変更イベントは送出され続けますが、サンプルがキャッシュに保存されなくなります。sampleInterval で指定した頻度で値が取得され続けますが、これらの値はキャッシュに保存されません。そのため、取得できるのは最新の値だけです。


例外
IOError — デバイスを有効にせずにこのメソッドを呼び出した場合。
定数の詳細
    

MAX_BUFFER_SIZE

定数
public static const MAX_BUFFER_SIZE:int = 32000

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 3.7

サンプリングされたコントロール値のキャッシュに使用するバッファーの最大サイズを指定します。startCachingSamples が指定したよりも多くのメモリを必要とするサンプルを返す場合は、メモリエラーがスローされます。





[ X ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。