包 | 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
事件添加事件侦听器。(只能在类的实例上注册事件。)
此类还具有 isSupported
标记,该标记指示平台上是否支持 GameInput API。
有关更多信息,请参阅 Adobe AIR 开发人员中心文章: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 — 当提供的索引小于零或大于 (numDevices - 1) 时。
|
deviceAdded | 事件 |
deviceRemoved | 事件 |
deviceUnusable | 事件 |
flash.events.GameInputEvent
当连接了游戏输入设备但设备不可用时调度。此事件仅适用于 Windows。例如,在 Windows 沙箱式浏览器中,当另一个基于 DirectInput 的应用程序已在使用设备时,便会调度此事件。
Tue Jun 12 2018, 11:04 AM Z