패키지 | 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()
메서드로 목록에 있는 컨트롤에 액세스합니다. -
샘플링된 컨트롤 값의 캐시를 관리합니다. 장치 객체에서 바로 컨트롤 값 집합을 샘플링하는 것은 컨트롤 값을 가져오는 세 가지 방법 중 하나입니다. 참고로, 다른 두 가지 방법은
GameInputControl
클래스에서value
메서드를 사용하는 것이며, 이는 해당 섹션에 설명되어 있습니다. 샘플 캐시는 응용 프로그램의 프레임 속도보다 더 빠른 속도로 컨트롤 값에 액세스해야 할 경우에 유용합니다.
이 클래스에서 GameInputEvent.DEVICE_REMOVED
이벤트에 대한 리스너를 항상 설정해야 합니다. 이 리스너를 사용하면 예상치 않게 장치의 연결이 끊기거나 전원이 꺼지는 경우의 문제를 처리할 수 있습니다. 장치의 연결이 끊기면 GameInputDevice
객체는 해제됩니다. 이는 관련된 장치의 연결이 끊기면 해당 객체가 더 이상 유효하지 않기 때문입니다.
제거되었다가 다시 연결된 Android 장치는 처음 연결될 때 보유한 ID를 유지합니다. 그러므로 ID를 일치시켜 장치를 논리적으로 다시 연결할 수 있습니다. iOS 장치의 경우 ID는 장치를 다시 연결할 때 변경될 수 있습니다.
참고: 목록에 있는 장치의 순서에 의존해서는 안 됩니다. 장치가 추가 및 제거될 때 순서가 변경될 수 있습니다.
자세한 내용은 Adobe Air Developer Center 문서 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에 지시합니다.
값은 프레임당 한 번보다 더 자주 업데이트될 수 있지만 컨트롤당 한 개의 이벤트만 전달됩니다. 그러므로 한 프레임에서 값이 두 번 업데이트된 경우 한 change 이벤트만 전달되고 오직 최신 값만 검색됩니다.
최신 값 이외의 다른 값도 검색하려면 이 클래스의 cache 메서드를 사용하여 샘플 값을 캐시할 수 있습니다. 샘플링된 값을 캐시하는 경우 이 속성은 값이 캐시에 기록되는 빈도를 결정합니다.
기본값: 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입니다. double로 기록된 샘플 값으로 채워집니다. 컨트롤의 위치에서 변경 사항이 감지되지 않는 경우 ByteArray가 NaN을 해당 컨트롤의 값으로 가집니다.
| |
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 — GameInputControls 목록에서 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()
메서드를 호출하여 샘플링된 값을 검색합니다.
샘플링된 값을 캐시하는 데 필요한 메모리가 MAX_BUFFER_SIZE
상수에 지정된 값보다 큰 경우 이 메서드에서 MemoryError
가 발생합니다. 이 메서드를 호출하기 전에 장치가 활성화되어 있지 않으면 IOError
가 발생합니다.
매개 변수
numSamples:int — 캐시에 저장된 샘플 수입니다. 샘플을 검색하면 항상 numSamples 보다 작거나 같은 값을 얻습니다.
| |
controls:Vector.<String> — String 의 벡터입니다. 각 String 은 컨트롤의 ID입니다. 샘플은 이 벡터에 제공된 순서대로 기록됩니다.
|
오류
RangeError — numSamples 가 0보다 작거나 같은 경우 또는 controls 의 입력 값이 0보다 작거나 (numControls - 1) 보다 큰 경우입니다.
| |
ArgumentError — 컨트롤이 null 이거나, 최소 하나의 항목도 포함하지 않거나, 유효하지 않은 항목을 포함한 경우입니다.
| |
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, 03:17 PM Z