Paket | flash.ui |
Klasse | public final class GameInputDevice |
Vererbung | GameInputDevice Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
GameInputDevice
-Klasse repräsentiert ein einzelnes Eingabegerät, das häufig für Spiele verwendet wird.
Mit den Methoden und Eigenschaften dieser Klasse können Sie Folgendes ausführen:
-
Aktivieren oder deaktivieren Sie ein Eingabegerät. Geräte sind anfangs standardmäßig deaktiviert (
enabled
hat den Wertfalse
). Sie müssen ein Gerät ausdrücklich aktivieren, indem Sieenabled
auftrue
setzen, bevor Sie Steuerungswerte von dem Gerät abrufen können. -
Den Namen und die ID eines Eingabegeräts abrufen. Zusammen können die
name
- undid
-Eigenschaften ein Gerät eindeutig identifizieren. Bei Adroid-Geräten legt der Geräteherstellung diese Werte fest. Bei iOS-Geräten kann sich dieID
jedes Mal ändern, wenn Sie das Gerät anschließen. -
Die Steuerungen eines Eingabegeräts aufzählen. Die physischen Steuerungen eines Geräts werden logischen
GameInputControl
-Objekten zugeordnet und in einer Liste gespeichert. Mit dergetControlAt()
-Methode haben Sie Zugriff auf eine Steuerung in der Liste. -
Die Zwischenspeicherung gesampelter Steuerungswerte verwalten. Das Sampling einer Gruppe von Steuerungswerten direkt vom Geräteobjekt ist eine von drei Möglichkeiten, die Steuerungswerte abzurufen. (Die anderen beiden Möglichkeiten verwenden die
value
-Methode derGameInputControl
-Klasse und werden dort beschrieben.) Sample-Caching ist hilfreich, wenn Sie schneller als die Framerate einer Anwendung auf Steuerungswerte zugreifen müssen.
Richten Sie immer einen Listener dieser Klasse für das GameInputEvent.DEVICE_REMOVED
-Ereignis ein. Mithilfe des Listeners können Sie Situationen verarbeiten, in denen ein Gerät unerwartet getrennt oder ausgeschaltet wurde. Wenn ein Gerät getrennt wird, machen Sie sein GameInputDevice
-Objekt verfügbar, da das Objekt nach der Trennung des zugeordneten Geräts nicht mehr gültig ist.
Ein Android-Gerät, das getrennt und dann erneut angeschlossen wird, behält die ID, die es beim ersten Anschließen hatte. Sie können ein Gerät logisch wieder anschließen, indem Sie seine ID zuordnen. Bei iOS-Geräten kann sich die ID ändern, wenn Sie das Gerät erneut anschließen.
Hinweis: Sie können sich nicht auf die Reihenfolge der Geräte in der Liste verlassen. (Die Reihenfolge kann sich beim Hinzufügen und Entfernen von Geräten ändern.)
Weitere Informationen finden Sie im Artikel zum Adobe Air Developer Center: Game controllers on Adobe AIR (Spielecontroller unter Adobe AIR).
Bei Android unterstützt diese Funktion Android OS-Versionen ab 4.1 und benötigt mindestens die SWF-Version 20 und Namespace 3.7. Bei iOS ist mindestens die iOS-Version 9.0, die SWF-Version 34 und Namespace 23.0 erforderlich.
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
enabled : Boolean
Aktiviert oder deaktiviert dieses Gerät. | GameInputDevice | ||
id : String [schreibgeschützt]
Gibt die ID dieses Geräts zurück. | GameInputDevice | ||
name : String [schreibgeschützt]
Gibt den Namen dieses Geräts zurück. | GameInputDevice | ||
numControls : int [schreibgeschützt]
Gibt die Anzahl der Steuerungen bei diesem Gerät zurück. | GameInputDevice | ||
sampleInterval : int
Gibt die Häufigkeit (in Millisekunden) an, mit der Steuerungswerte abgerufen werden. | GameInputDevice |
Methode | Definiert von | ||
---|---|---|---|
Schreibt zwischengespeicherte Samplewerte in das ByteArray. | GameInputDevice | ||
Ruft eine bestimmte Steuerung von einem Gerät ab. | GameInputDevice | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Fordert an, dass das Gerät einen Zwischenspeicher der gesampelten Werte anlegt. | GameInputDevice | ||
Beendet das Zwischenspeichern der Samples. | GameInputDevice | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
Konstante | Definiert von | ||
---|---|---|---|
MAX_BUFFER_SIZE : int = 32000 [statisch]
Legt die maximale Größe des Puffers fest, der zum Zwischenspeichern der gesampelten Steuerungswerte verwendet wird. | GameInputDevice |
enabled | Eigenschaft |
enabled:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Aktiviert oder deaktiviert dieses Gerät. Standardmäßig sind Geräte deaktiviert. Aktivieren Sie ein Gerät, um darauf zuzugreifen oder dessen Steuerungswerte zu sampeln. Ereignisse werden nur dann von einem Gerät und dessen einzelnen Steuerungen abgesetzt, wenn das Gerät aktiviert ist.
Wenn ein Gerät entfernt wird, wird es deaktiviert. Sie können auch zu einem deaktivierten Gerät Informationen abrufen, Sie können jedoch nicht auf die Steuerungswerte zugreifen oder die Zwischenspeicherung starten. Ein Gerät, das entfernt wurde, kann nicht aktiviert werden. Wenn ein Gerät entfernt wird, gibt enabled
immer den Wert false
zurück.
Implementierung
public function get enabled():Boolean
public function set enabled(value:Boolean):void
id | Eigenschaft |
id:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Gibt die ID dieses Geräts zurück. Anhand der ID können Sie die Geräte voneinander unterscheiden.
Hinweis: Bei Android-Geräten legt der Gerätehersteller die Geräte-ID fest. Bei iOS-Geräten kann sich die ID ändern, wenn Sie das Gerät erneut anschließen.
Implementierung
public function get id():String
name | Eigenschaft |
numControls | Eigenschaft |
sampleInterval | Eigenschaft |
sampleInterval:int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Gibt die Häufigkeit (in Millisekunden) an, mit der Steuerungswerte abgerufen werden. Die Standardeinstellung ist 0, was bedeutet, dass die Werte einmal pro Bild aktualisiert werden. Bei einem höheren Wert für sampleValue
sampelt GameInput Steuerungswerte mit einer schnelleren Rate als die Framerate der Anwendung.
Auch wenn Werte häufiger als einmal pro Bild aktualisiert werden können, wird nur ein Ereignis pro Steuerung abgesetzt. Wenn ein Wert in einem Bild zweimal aktualisiert wird, wird also nur ein Änderungsereignis abgesetzt und nur der neueste Wert kann abgerufen werden.
Wenn Sie mehr als nur den neuesten Wert abrufen möchten, können Sie Samplewerte mit den Cache-Methoden dieser Klasse zwischenspeichern. Beim Speichern von gesampelten Werten im Cache bestimmt diese Eigenschaft, wie oft Werte in den Cache geschrieben werden.
Der Standardwert ist 0.
Implementierung
public function get sampleInterval():int
public function set sampleInterval(value:int):void
Auslöser
IOError — Wenn das Gerät deaktiviert ist, während diese Eigenschaft festgelegt wird.
| |
RangeError — Wenn sampleInterval kleiner als 0 ist.
|
getCachedSamples | () | Methode |
public function getCachedSamples(data:ByteArray, append:Boolean = false):int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Schreibt zwischengespeicherte Samplewerte in das ByteArray
. Die zwischengespeicherten Samplewerte werden in der Reihenfolge in das ByteArray
geschrieben, in der sie abgerufen wurden (älteste Werte zuerst, neueste zuletzt).
Diese Methode gibt die Anzahl der zwischengespeicherten Samplewerte an, die in das ByteArray
geschrieben wurden (nicht die Werte selbst). Wenn der append
-Parameter den Wert false
(die Standardeinstellung) aufweist, wird das ByteArray
geleert, bevor die Samplewerte aus dem Zwischenspeicher geschrieben werden. Wenn append
den Wert „true“ hat, werden die Samplewerte an den Inhalt von ByteArray
angehängt, sodass die älteren Werte erhalten bleiben. Sie sollten Samplewerte in den folgenden Fällen anhängen:
- Es muss immer eine bestimmte Anzahl von Werten verfügbar sein.
- Sie müssen ein Protokoll führen, das größer als der Cache ist.
append
den Wert true
hat, ist die Anwendung für das Leeren des ByteArray
zuständig. Wenn das ByteArray
nicht geleert wird, wird es immer größer, bis die Anwendung möglicherweise abstürzt.
Der Cache wird geleert, nachdem die Samplewerte in das ByteArray
geschrieben wurden.
Ein IOError
wird ausgegeben, wenn das Gerät beim Aufrufen der Methode deaktiviert ist.
Parameter
data:ByteArray — Das ByteArray, das die abgerufenen Daten enthält. Es ist mit Samplewerten gefüllt, die als Verdopplungen geschrieben werden. Das ByteArray enthält NaN als Wert eines Steuerelements, falls keine Änderungen an der Position des Steuerelements erkannt werden.
| |
append:Boolean (default = false ) — Ein Flag, das bestimmt, wie die Daten in das ByteArray geschrieben werden. Bei der Einstellung true werden die gesampelten Werte an das Ende des Arrays geschrieben. Bei der Einstellung false wird der Inhalt von ByteArray entfernt, bevor die Daten in das Array geschrieben werden. Der Standardwert ist false .
|
int — Die Anzahl der Samples (nicht: Werte), die in das ByteArray geschrieben werden.
|
Auslöser
ArgumentError — Wenn data null ist.
| |
IOError — Wenn diese Methode aufgerufen und das Gerät deaktiviert wird.
|
getControlAt | () | Methode |
public function getControlAt(i:int):GameInputControl
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Ruft eine bestimmte Steuerung von einem Gerät ab.
GameInputDevice speichert die Steuerungen auf einem Gerät in einer Liste. Sie können auf einzelne Steuerungen eines Geräts zugreifen, indem Sie die getControlAt()
-Methode verwenden.
Die Reihenfolge des Steuerelements im Index kann sich ändern, wenn ein Gerät hinzugefügt oder entfernt wird. Sie können die ID
-Eigenschaft auf einem GameInputControl
-Objekt überprüfen, ob sie mit einem bestimmten Steuerelement übereinstimmt.
Sie können Steuerungen abrufen, auch wenn ein Gerät nicht aktiviert ist. Es ist jedoch nicht möglich, Steuerungswerte von einem deaktivierten Gerät abzurufen. Mit dieser Funktion können Sie die Eigenschaften einer Steuerung lesen, bevor Sie das zugehörige Gerät aktivieren. Auf diese Weise können Sie vor der Aktivierung eines Geräts feststellen, ob es sich für Ihre Anwendung eignet.
Parameter
i:int — Die Indexposition von GameInputControl in der GameInputControls-Liste.
|
GameInputControl — Das GameInputControl-Objekt an der angegebenen Indexposition.
|
Auslöser
RangeError — Wenn der Index kleiner als null oder größer als (numControls - 1) ist.
|
startCachingSamples | () | Methode |
public function startCachingSamples(numSamples:int, controls:Vector.<String>):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Fordert an, dass das Gerät einen Zwischenspeicher der gesampelten Werte anlegt. Die sampleInterval
-Eigenschaft bestimmt die Sampling-Häufigkeit. Der numSamples
-Parameter gibt die Anzahl der Samples an, die zwischengespeichert werden sollen. Der controls
-Parameter gibt die ID-Werte der zu sampelnden Steuerungen an.
Steuerungswerte werden in der angegebenen Reihenfolge zwischengespeichert. Sie rufen die gesampelten Werte ab, indem Sie die getCachingSamples()
-Methode aufrufen.
Wenn der zum Speichern der gesampelten Werte erforderliche Speicher größer ist als der in der MAX_BUFFER_SIZE
-Konstante angegebene Wert, wird ein MemoryError
ausgegeben. Ein IOError
wird ausgegeben, wenn das Gerät vor dem Aufrufen dieser Methode nicht aktiviert wurde.
Parameter
numSamples:int — Die Anzahl der Samples, die im Cache gespeichert werden sollen. Wenn Sie Samples abrufen, erhalten Sie immer eine Anzahl, die kleiner oder gleich numSamples ist.
| |
controls:Vector.<String> — Ein Vektor von String . Jeder String ist eine ID eines Steuerelements. Die Samples werden in derselben Reihenfolge geschrieben, in der sie in diesem Vektor bereitgestellt werden.
|
Auslöser
RangeError — Wenn numSamples gleich oder kleiner als null ist oder wenn ein Eintrag in controls kleiner als null oder größer als (numControls - 1) ist.
| |
ArgumentError — Wenn Steuerelemente null sind oder nicht mindestens einen Eintrag oder ungültige Einträge beinhalten.
| |
IOError — Wenn diese Methode für ein deaktiviertes Gerät aufgerufen wird.
| |
MemoryError — Wenn die Cachegröße (Anzahl der Werte * Samples) größer als MAX_BUFFER_SIZE ist.
|
stopCachingSamples | () | Methode |
public function stopCachingSamples():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Beendet das Zwischenspeichern der Samples. Zwar werden weiterhin Änderungsereignisse für Steuerungen abgesetzt, es werden jedoch keine weiteren Samples im Cache gespeichert. Werte werden weiterhin mit der in sampleInterval
angegebenen Häufigkeit abgerufen, sie werden jedoch nicht mehr im Cache gespeichert. Deshalb können Sie nur den letzten Wert abrufen.
Auslöser
IOError — Wenn Sie diese Methode aufrufen, ohne das Gerät zuvor zu aktivieren.
|
MAX_BUFFER_SIZE | Konstante |
public static const MAX_BUFFER_SIZE:int = 32000
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.7 |
Legt die maximale Größe des Puffers fest, der zum Zwischenspeichern der gesampelten Steuerungswerte verwendet wird. Wenn startCachingSamples
Samples zurückgibt, die mehr Speicher benötigen als Sie angegeben haben, wird ein Arbeitsspeicherfehler ausgegeben.
Tue Jun 12 2018, 10:04 AM Z