Paket | flash.ui |
Klass | public final class GameInputDevice |
Arv | GameInputDevice Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
GameInputDevice
representerar en enskild indataenhet som vanligtvis används för spel.
Den här klassen innehåller metoder och egenskaper som du kan använda för:
-
Aktivera eller inaktivera en inmatningsenhet. Enheter är som standard inaktiverade (
enabled
ärfalse
). Du måste explicit aktivera en enhet genom att sättaenabled
tilltrue
innan du erhåller kontrollvärden från enheten. -
Hämta namn och ID för en indataenhet. Egenskaperna
name
ochid
identifierar tillsammans en enhet. Enhetstillverkaren tillhandahåller dessa värden på Android-enheter. På iOS-enheter kanid
ändras varje gång du ansluter enheten. -
Räkna upp kontrollerna på en indataenhet. Fysiska kontroller på en enhet är matchade mot logiska
GameInputControl
-objekt och lagras i en lista. Med metodengetControlAt()
får du åtkomst till en kontroll i listan. -
Hantera cache-lagring av samplade kontrollvärden. Att sampla ett antal kontrollvärden direkt från ett enhetsobjekt är ett av de tre sätt som finns för att erhålla kontrollvärden. (De andra två sätten använder metoden
value
i klassenGameInputControl
, och detta beskrivs där.) Att cache-lagra sampel är användbart när du behöver ha snabbare åtkomst till kontrollvärden än till bildrutehastigheten i ett program.
Ställ alltid in en avlyssnare i den här klassen för GameInputEvent.DEVICE_REMOVED
-händelsen. Med den här avlyssnaren kan du hantera fall då en enhet oväntat kopplas från eller stängs av. När en enhet kopplas från ska du frigöra dess GameInputDevice
-objekt, eftersom objektet inte längre är giltigt seden dess associerade enhet har kopplats från.
En Android-enhet som tas bort och sedan ansluts på nytt, behåller det ID den hade första gången som den anslöts. Du kan logiskt återansluta till en enhet genom att matcha dess ID. ID för iOS-enheter kan ändras när du ansluter enheten igen.
Obs! Du kan inte lita på enhetsordningen i listan. (Ordningen kan ändras när enheter läggs till och tas bort.)
Mer information finns i artikeln på Adobe Air Developer Center: Spelkontroller i Adobe AIR.
I Android krävs minst Android OS-version 4.1, SWF-version 20 och namnrymden 3.7 för funktionen. I iOS krävs minst iOS-version 9.0, SWF-version 34 och namnrymden 23.0 för funktionen.
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
enabled : Boolean
Aktiverar eller inaktiverar den här enheten. | GameInputDevice | ||
id : String [skrivskyddad]
Returnerar ID för den här enheten. | GameInputDevice | ||
name : String [skrivskyddad]
Returnerar namnet för den här enheten. | GameInputDevice | ||
numControls : int [skrivskyddad]
Returnerar antalet kontroller på den här enheten. | GameInputDevice | ||
sampleInterval : int
Anger med vilken hastighet (i millisekunder) som kontrollvärden hämtas. | GameInputDevice |
Metod | Definieras med | ||
---|---|---|---|
Skriver cache-lagrade samplingsvärden till ByteArray. | GameInputDevice | ||
Hämtar en specifik kontroll från en enhet. | GameInputDevice | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Begär att en enhet ska börja behålla cache-lagrade samplingsvärden. | GameInputDevice | ||
Stoppar cache-lagring av sampel. | GameInputDevice | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object |
Konstant | Definieras med | ||
---|---|---|---|
MAX_BUFFER_SIZE : int = 32000 [statisk]
Anger den största storleken på bufferten som används för att cache-lagra samplade kontrollvärden. | GameInputDevice |
enabled | egenskap |
enabled:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Aktiverar eller inaktiverar den här enheten. Enheter är som standard inaktiverade. Aktivera en enhet för att få åtkomst till kontrollvärden eller sampel. En enhet och dess enskilda kontroller skickar händelser endast när enheten är aktiverad.
När en enhet tas bort kommer den att inaktiveras. Du kan fortfarande få information om den inaktiverade enheten, men du har inte åtkomst till kontrollvärden och du kan inte heller starta cache-lagring. Du kan dessutom inte aktivera enheten om den tagits bort. Om en enhet är bortagen kommer enabled
alltid att returnera false
.
Implementering
public function get enabled():Boolean
public function set enabled(value:Boolean):void
id | egenskap |
id:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Returnerar ID för den här enheten. Du kan skilja på olika enheter med hjälp av deras ID.
Obs! Enhetstillverkaren tillhandahåller enhetens ID:n på Android-enheter. ID för iOS-enheter kan ändras när du ansluter enheten igen.
Implementering
public function get id():String
name | egenskap |
numControls | egenskap |
sampleInterval | egenskap |
sampleInterval:int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Anger med vilken hastighet (i millisekunder) som kontrollvärden hämtas. Standard är 0, vilket betyder att värden uppdateras en gång per bildruta. Om du anger ett högre värde för sampleValue
kommer GameInput att sampla kontrollvärden med en snabbare hastighet än programmets bildrutefrekvens.
Trots att värden kan uppdateras snabbare än en gång per bildruta, kan endast en händelse per kontroll skickas. Detta innebär att om två uppdateringar av ett värde inträffar för en bildruta, kommer endast en ändringshändelse att skickas och endast det senaste värdet kan hämtas.
Om du vill hämta fler värden än bara det senaste, kan du cache-lagra sampelvärden med hjälp av cache-lagringsmetoderna i den här klassen. När du cache-lagrar sampelvärden bestäms med den här egenskapen hur ofta värdena skrivs i cache-minnet.
Standardvärdet är 0.
Implementering
public function get sampleInterval():int
public function set sampleInterval(value:int):void
Utlöser
IOError — När enheten är inaktiverad medan den här egenskapen ställs in.
| |
RangeError — När sampleInterval är mindre än 0.
|
getCachedSamples | () | metod |
public function getCachedSamples(data:ByteArray, append:Boolean = false):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Skriver cache-lagrade samplingsvärden till ByteArray
. De cache-lagrade samplingsvärdena skrivs till ByteArray
i den ordning de hämtades (de äldsta först och de senaste sist).
Denna metod returnerar antalet cache-lagrade samplingsvärden som skrivs till ByteArray
(inte själva värdena). Om parametern append
är false
(standard), kommer ByteArray
att rensas innan samplingsvärdena skrivs från cache-minnet. Om append
är true, kommer samplingsvärdena att läggas till ByteArray
och de äldre värdena behålls. Lägg till samplingsvärden om:
- Du måste ha ett specifikt antal värden tillgängliga.
- Du måste ha en historik som är större än cache-minnet.
append
är true
, ska ByteArray
rensas av programmet. Om ByteArray
inte rensas kommer den att fortsätta växa så att det finns risk för att programmet ska sluta fungera.
Cache-minnet rensas efter det att samplingsvärden har skrivits till ByteArray
.
Ett IOError
-fel returneras om enheten inaktiveras när den här metoden anropas.
Parametrar
data:ByteArray — Den ByteArray som innehåller hämtade data. Den fylls med samplingsvärden skrivna som dubbletter. ByteArray innehåller NaN, som värdet för en kontroll, om ingen ändring upptäcks i kontrollens position.
| |
append:Boolean (default = false ) — En flagga som bestämmer hur data skrivs till ByteArray . Om värdet är true skrivs de samplade värdena till slutet av arrayen. Om det är false , tas innehållet för ByteArray bort och sedan skrivs data till arrayen. Standardvärdet är false .
|
int — Antalet sampel (inte värden) som skrivs till ByteArray .
|
Utlöser
ArgumentError — När data är null.
| |
IOError — När den här metoden anropas och enheten inaktiverad.
|
getControlAt | () | metod |
public function getControlAt(i:int):GameInputControl
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Hämtar en specifik kontroll från en enhet.
GameInputDevice lagrar kontroller på en enhet i en lista. Du kan komma åt de enskilda kontrollerna på en enhet med hjälp av metoden getControlAt()
.
Ordningen för kontrollerna i indexet kan förändras när en enhet läggs till eller tas bort. Du kan kontrollera egenskapen id
i ett GameInputControl
-objekt för att matcha en särskild kontroll.
Du kan hämta kontroller även om en enhet inte är aktiverad. Du kan emellertid inte läsa kontrollvärden i en inaktiverad enhet. Den här funktionen gör det möjligt att läsa en kontrolls egenskaper innan du aktiverar enheten som kontrollen tillhör. Du använder den här möjligheten för att bestämma om en enhet är lämplig för ditt program innan du aktiverar enheten.
Parametrar
i:int — Indexpositionen för GameInputControl i listan för GameInputControls.
|
GameInputControl — Objektet GameInputControl i den angivna indexpositionen.
|
Utlöser
RangeError — När indexet är mindre än noll eller större än (numDevices - 1) .
|
startCachingSamples | () | metod |
public function startCachingSamples(numSamples:int, controls:Vector.<String>):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Begär att en enhet ska börja behålla cache-lagrade samplingsvärden. Egenskapen sampleInterval
bestämmer samplingsfrekvensen. Parametern numSamples
anger antalet sampel som ska cache-lagras. Parametern controls
anger ID-värdena för kontrollerna som samplas.
Kontrollvärden cache-lagras i den angivna ordningen. Du hämtar de samplade värdena genom att anropa metoden getCachingSamples
.
Om minnet som krävs för att cache-lagra värdena är större än det värde som angetts i konstanten MAX_BUFFER_SIZE
i den här klassen, returnerar metoden ett MemoryError
-fel. Ett IOError
-fel returneras om enheten inte har aktiverats innan den här metoden anropas.
Parametrar
numSamples:int — Antalet sampel som lagras i cache-minnet. När sampel hämtas får du alltid mindre eller lika med numSamples .
| |
controls:Vector.<String> — En vektor med String . VarjeString är ett ID för en kontroll. Samplen skrivs i den ordning som de finns i den här vektorn.
|
Utlöser
RangeError — När numSamples är mindre eller lika med noll, eller när en post i controls är mindre än noll eller större än (numControls - 1) .
| |
ArgumentError — När kontrollerna är null , inte innehåller någon post eller innehåller ogiltiga poster.
| |
IOError — När den här metoden anropas på en inaktiverad enhet.
| |
MemoryError — När cache-storleken (antal värden * sampel) är större än MAX_BUFFER_SIZE .
|
stopCachingSamples | () | metod |
public function stopCachingSamples():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Stoppar cache-lagring av sampel. Trots att ändringshändelser på kontroller fortfarande skickas, kommer inga fler sampel att lagras i cache-minnet. Värden hämtas fortfarande i den takt som anges i sampleInterval
, men dessa värden lagras inte i cache-minnet. Därför kan du bara hämta de senaste värdena.
Utlöser
IOError — När du anropar den här metoden utan att först ha aktiverat enheten.
|
MAX_BUFFER_SIZE | Konstant |
public static const MAX_BUFFER_SIZE:int = 32000
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 3.7 |
Anger den största storleken på bufferten som används för att cache-lagra samplade kontrollvärden. Du kommer att få ett minnesfel om startCachingSamples
returnerar sampel som kräver mer minne än vad du anger.
Tue Jun 12 2018, 01:40 PM Z