套件 | 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 Developer Center 文章:Adobe AIR 上的遊戲控制器 (英文)。
若是 Android,這個功能支援最低 4.1 的 Android OS 版本,並且至少需要 SWF 版本 20 及命名空間 3.7。若是 iOS,這個功能支援最低 9.0 的 iOS 版本,並且至少需要 SWF 版本 34 及命名空間 23.0。
如何從相同的裝置中偵測出一個遊戲輸入裝置
兩個以上播放程式遊戲的常見需求是,從相同的裝置中偵測出一個裝置。例如,應用程式有時必須判斷出哪些裝置代表「Player 1」、「Player 2」...、「Player 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 特定的事件。例如,當另一個 DirectInput 應用程式已經在使用裝置時,Windows 安全執行程序的瀏覽器就會發生這個情形。
Tue Jun 12 2018, 03:47 PM Z