適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: AIR 30.0 和更早版本, Flash Player 30.0 和更早版本, Flash Lite 4
Flex 4.6 和更早版本, Flash Pro CS6 和更早版本
隱藏篩選
flash.ui 

GameInput  - AS3

套件flash.ui
類別public final class GameInput
繼承GameInput Inheritance EventDispatcher Inheritance Object

語言版本: ActionScript 3.0
執行階段版本: AIR 3.7

GameInput 類別是 GameInput API 的輸入點。您可以使用這個 API 管理應用程式與遊戲輸入裝置 (例如:搖桿、遊戲台和遊戲棒) 之間的通訊。

這個類別的主要用途在於,提供與您的應用程式平台連線之支援輸入裝置的存取。這個靜態類別會列舉清單中連線的輸入裝置。您可以使用 getDeviceAt(index:int) 方法,存取清單中的裝置。

numDevices 屬性提供目前已連線到平台的輸入裝置數目。透過這個值,您可以判斷裝置清單的上限。

使用這個類別的實體,可以偵聽用來通知您有關輸入裝置新增及移除的事件。若要偵聽這些事件,請執行下列動作:

  1. 建立 GameInput 類別的實體。
  2. 加入 GameInputEvent.DEVICE_ADDEDGameInputEvent.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」。

解決方案:

  1. 將事件偵聽程式新增至所有未偵測到的輸入裝置上的每個控制項。這些事件偵聽程式會偵聽每當控制項值變更時傳送的 Event.CHANGE 事件。
  2. 任何控制項第一次啟動 (例如按下按鈕或提取觸發) 時,應用程式都會標示該裝置。
  3. 從剩餘未偵測到的輸入裝置中移除所有事件偵聽程式。
  4. 視需要重複執行步驟 1-3,以識別其餘未偵測到的輸入裝置。

相關 API 元素



公用屬性
 屬性定義自
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
      isSupported : Boolean
[靜態] [唯讀] 指出目前的平台是否支援 GameInput API。
GameInput
      numDevices : int
[靜態] [唯讀] 提供已連線的輸入裝置數目。
GameInput
公用方法
 方法定義自
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。
EventDispatcher
 Inherited
會將事件傳送到事件流程。
EventDispatcher
  
[靜態] 取得已連線輸入裝置清單中,位於指定索引位置的輸入裝置。
GameInput
 Inherited
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。
EventDispatcher
 Inherited
指出物件是否有已定義的指定屬性。
Object
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
會從 EventDispatcher 物件移除偵聽程式。
EventDispatcher
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
 Inherited
傳回代表此物件的字串,根據地區特定慣例進行格式化。
Object
 Inherited
會傳回指定之物件的字串形式。
Object
 Inherited
會傳回指定之物件的基本值。
Object
 Inherited
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。
EventDispatcher
事件
 事件 摘要 定義自
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。EventDispatcher
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。EventDispatcher
  當遊戲輸入裝置連線至平台或是開啟已連線的裝置時傳送。GameInput
  當遊戲輸入裝置從平台中移除或是關閉連線的裝置時傳送。GameInput
  在連接遊戲輸入裝置但裝置無法使用時傳送。GameInput
屬性詳細資訊
    

isSupported

屬性
isSupported:Boolean  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 3.7

指出目前的平台是否支援 GameInput API。



實作
    public static function get isSupported():Boolean
    

numDevices

屬性 
numDevices:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 3.7

提供已連線的輸入裝置數目。當裝置已連線時,會引發 GameInputEvent.DEVICE_ADDED 事件。



實作
    public static function get numDevices():int
方法詳細資訊

    getDeviceAt

()方法
public static function getDeviceAt(index:int):GameInputDevice

語言版本: ActionScript 3.0
執行階段版本: AIR 3.7

取得已連線輸入裝置清單中,位於指定索引位置的輸入裝置。

每當新增或移除裝置時,索引中的裝置順序都會變更。您可以檢查 GameInputDevice 物件上的 nameid 屬性,以比對特定輸入裝置。

參數

index:int — 輸入裝置清單中的索引位置。

傳回值
GameInputDevice — 指定的 GameInputDevice

擲回值
RangeError — 當提供的索引小於零或大於 (numDevices - 1) 的時候。
事件詳細資訊

deviceAdded

事件
事件物件類型: flash.events.GameInputEvent

當遊戲輸入裝置連線至平台或是開啟已連線的裝置時傳送。

deviceRemoved

事件  
事件物件類型: flash.events.GameInputEvent

當遊戲輸入裝置從平台中移除或是關閉連線的裝置時傳送。

deviceUnusable

事件  
事件物件類型: flash.events.GameInputEvent

在連接遊戲輸入裝置但裝置無法使用時傳送。這是 Windows 特定的事件。例如,當另一個 DirectInput 應用程式已經在使用裝置時,Windows 安全執行程序的瀏覽器就會發生這個情形。





[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。