패키지 | flash.ui |
클래스 | public final class GameInput |
상속 | GameInput EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 3.7 |
GameInput
클래스는 GameInput API에 대한 진입점입니다. 응용 프로그램과 게임 입력 장치(예: 조이스틱, 게임패드, 터치펜) 간의 통신을 관리하는 데 이 API를 사용할 수 있습니다.
이 클래스의 주 목적은 응용 프로그램 플랫폼에 연결된 지원 입력 장치에 대한 액세스를 제공하는 것입니다. 이 정적 클래스는 연결된 입력 장치를 목록에 열거합니다. getDeviceAt(index:int)
메서드를 사용하여 목록의 장치에 액세스할 수 있습니다.
numDevices
속성은 플랫폼에 현재 연결된 입력 장치의 수를 제공합니다. 이 값을 사용하여 장치 목록의 상한을 결정합니다.
이 클래스의 인스턴스를 사용하여 입력 장치의 추가 및 제거를 알리는 이벤트를 수신합니다. 이러한 이벤트를 수신하려면 다음을 수행합니다.
-
GameInput
클래스의 인스턴스를 만듭니다. -
GameInputEvent.DEVICE_ADDED
및GameInputEvent.DEVICE_REMOVED
이벤트에 대한 이벤트 리스너를 추가합니다. 참고로, 이벤트는 클래스의 인스턴스에서만 등록될 수 있습니다.
이 클래스는 또한 GameInput API가 현재 플랫폼에서 지원되는지 여부를 나타내는 isSupported
플래그를 지정합니다.
자세한 내용은 Adobe Air Developer Center 문서 Adobe AIR의 게임 컨트롤러를 참조하십시오.
Android의 경우 이 기능은 Android OS 버전 4.1 이상을 지원하며 SWF 버전 20 및 네임스페이스 3.7 이상이 필요합니다. iOS의 경우 이 기능은 iOS 버전 9.0 이상을 지원하며 SWF 버전 34 및 네임스페이스 23.0 이상이 필요합니다.
동일 장치 사이에서 단일 게임 입력 장치를 감지하는 방법
둘 이상의 플레이어를 위한 게임의 경우 일반적으로 동일한 여러 장치에서 단일 장치를 감지해야 합니다. 예를 들어 응용 프로그램은 각 "플레이어 1", "플레이어 2", ..., "플레이어 N"이 나타내는 장치가 무엇인지 확인해야 하는 경우가 있습니다.
해결 방법:
-
감지되지 않은 모든 입력 장치에서 각 컨트롤에 이벤트 리스너를 추가합니다. 이 이벤트 리스너는 컨트롤 값이 변경될 때마다 전달되는
Event.CHANGE
이벤트를 수신합니다. - 버튼이 눌러지거나 트리거가 당겨지는 경우와 같이 컨트롤이 처음 활성화되면 응용 프로그램은 해당 장치에 레이블을 지정합니다.
- 그런 다음 감지되지 않은 나머지 입력 장치의 이벤트 리스너를 모두 제거합니다.
- 감지되지 않은 나머지 입력 장치를 모두 식별하도록 1-3 단계를 반복해야 합니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
isSupported : Boolean [정적] [읽기 전용]
현재 플랫폼이 GameInput API를 지원하는지 여부를 나타냅니다. | GameInput | ||
numDevices : int [정적] [읽기 전용]
연결된 입력 장치의 수를 제공합니다. | GameInput |
메서드 | 정의 주체 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
[정적]
연결된 입력 장치 목록에서 지정한 인덱스 위치의 입력 장치를 가져옵니다. | GameInput | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | |||
플랫폼에서 게임 입력 장치가 연결되거나 이미 연결된 장치의 전원이 켜진 경우에 전달됩니다. | GameInput | |||
플랫폼에서 게임 입력 장치가 제거되거나 연결된 장치의 전원이 꺼진 경우에 전달됩니다. | GameInput | |||
게임 입력 장치가 연결되어 있지만 사용 가능한 상태가 아닌 경우 전달됩니다. | GameInput |
isSupported | 속성 |
numDevices | 속성 |
getDeviceAt | () | 메서드 |
public static function getDeviceAt(index:int):GameInputDevice
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 3.7 |
연결된 입력 장치 목록에서 지정한 인덱스 위치의 입력 장치를 가져옵니다.
인덱스에서 장치 순서는 장치가 추가 또는 제거될 때마다 변경될 수 있습니다. GameInputDevice
객체의 name
및 id
속성을 통해 특정 입력 장치와 일치하는지 확인할 수 있습니다.
매개 변수
index:int — 입력 장치 목록의 인덱스 위치입니다.
|
GameInputDevice — 지정한 GameInputDevice 입니다.
|
오류
RangeError — 제공된 인덱스가 0보다 작거나 (numDevices - 1) 보다 큰 경우입니다.
|
deviceAdded | 이벤트 |
deviceRemoved | 이벤트 |
deviceUnusable | 이벤트 |
flash.events.GameInputEvent
게임 입력 장치가 연결되어 있지만 사용 가능한 상태가 아닌 경우 전달됩니다. 이 이벤트는 Windows와만 관련이 있습니다. 예를 들어 다른 DirectInput 기반 응용 프로그램이 이미 해당 장치를 사용하고 있는 경우 Windows 샌드박스 브라우저에서 발생합니다.
Tue Jun 12 2018, 03:17 PM Z