Пакет | flash.ui |
Класс | public final class GameInputDevice |
Наследование | GameInputDevice Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
GameInputDevice
представляет единое устройство ввода данных, обычно используемое для игр.
Этот класс включает методы и свойства, которые позволяют:
-
Включите или отключите устройство ввода. Устройства изначально выключены по умолчанию (
enabled
имеет значениеfalse
). Необходимо явно включить устройство, задав дляenabled
значениеtrue
, перед получением управляющих значений с этого устройства. -
Получить имя и идентификатор устройства ввода. Комбинация свойства
name
иid
является уникальным идентификатором устройства. Для устройств Android эти значения предоставляются производителем. Для устройств iOSid
может меняться каждый раз при подключении устройства. -
Перечислить элементы управления на устройстве ввода. Физические элементы управления на устройстве сопоставляются с логическими объектами
GameInputControl
и хранятся в списке. Доступ к списку можно получить с помощью методаgetControlAt()
. -
Управлять кэшированием выборки значений элементов управления. Выборка набора значений элементов управления непосредственно с объекта устройства — это один из трех способов получить значения элемента управления. (В двух других способах используется метод
value
классаGameInputControl
, они описываются в разделе, посвященном этому классу.) Кэширование выборки рекомендуется, когда требуется доступ к значениям элемента управления с большей частотой, чем частота кадров приложения.
Всегда создавайте прослушиватель для события GameInputEvent.DEVICE_REMOVED
этого класса. Он позволяет обрабатывать ситуации неожиданного отключения или выключения устройства. В случае отключения устройства освобождайте его объект GameInputDevice
, так как он перестает быть действительным после отключения связанного с ним устройства.
Устройство Android, которое удаляется, а затем подключается повторно, сохраняет идентификатор, полученный при первом подключении. Логически его можно повторно подключить к устройству путем сопоставления идентификатора. Для устройств iOS id может меняться при повторном подключении устройства.
Примечание. Нельзя полагаться на порядок устройств в списке. (Порядок может меняться при добавлении и удалении устройств.)
Дополнительные сведения см. в статье Adobe Air Developer Center Игровые контроллеры на Adobe AIR.
Для устройств Android эта функция поддерживает ОС Android начиная с версии 4.1 и требует SWF начиная с версии 20 и пространство имен 3.7. Для устройств iOS эта функция поддерживает ОС iOS начиная с версии 9.0 и требует SWF начиная с версии 34 и пространство имен 23.0.
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
enabled : Boolean
Включает или выключает это устройство. | GameInputDevice | ||
id : String [только для чтения]
Возвращает идентификатор этого устройства. | GameInputDevice | ||
name : String [только для чтения]
Возвращает имя этого устройства. | GameInputDevice | ||
numControls : int [только для чтения]
Возвращает число элементов управления в этом устройстве. | GameInputDevice | ||
sampleInterval : int
Указывает частоту (в миллисекундах), с которой можно извлекать значения элемента управления. | GameInputDevice |
Метод | Определено | ||
---|---|---|---|
Записывает кэшированные значения выборки в объект ByteArray. | GameInputDevice | ||
Извлекает определенный элемент управления устройства. | GameInputDevice | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Просит данное устройство приступить к сохранению значений выборки в кэше. | GameInputDevice | ||
Прекращает кэширование выборки. | GameInputDevice | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object |
Константа | Определено | ||
---|---|---|---|
MAX_BUFFER_SIZE : int = 32000 [статические]
Задает максимальный размер для буфера, используемого для кэширования выборки значений элементов управления. | GameInputDevice |
enabled | свойство |
enabled:Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Включает или выключает это устройство. По умолчанию устройства выключены. Включите устройство, чтобы получить доступ к значениям элемента управления или сделать выборку. Кроме того, устройство и его отдельные элементы управления отправляют события, только когда устройство включено.
Отключается при удалении устройства. Можно по-прежнему получать информацию об отключенном устройстве, но нельзя получить доступ к значениям элементов управления или начать кэширование. Кроме того, нельзя включить устройство, если оно удалено. Если устройство удалено, enabled
всегда возвращает значение false
.
Реализация
public function get enabled():Boolean
public function set enabled(value:Boolean):void
id | свойство |
id:String
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Возвращает идентификатор этого устройства. Устройства можно различать по их идентификаторам.
Примечание. Для устройств Android идентификаторы предоставляются производителем. Для устройств iOS идентификатор может меняться при повторном подключении устройства.
Реализация
public function get id():String
name | свойство |
numControls | свойство |
sampleInterval | свойство |
sampleInterval:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Указывает частоту (в миллисекундах), с которой можно извлекать значения элемента управления. По умолчанию используется значение 0, то есть значения обновляются раз в кадр. Если задано более высокое значение sampleValue
, GameInput выполняет выборку значений элемента управления с частотой, превышающей частоту кадров приложения.
Хотя значения можно обновлять чаще, чем один раз в кадр, отправляется только одно событие для каждого элемента управления. Поэтому если на протяжении одного кадра значение обновляется два раза, то отправляется только одно событие изменения и извлекается только самое последнее значение.
Чтобы извлечь не только самое последнее новое значение, можно кэшировать значения выборки с помощью методов кэширования этого класса. Когда кэшируются значения выборки, это свойство определяет частоту записи значений в кэш.
Значением по умолчанию является 0.
Реализация
public function get sampleInterval():int
public function set sampleInterval(value:int):void
Выдает
IOError — Когда устройство выключено в момент установки этого свойства.
| |
RangeError — Когда значение sampleInterval меньше чем 0.
|
getCachedSamples | () | метод |
public function getCachedSamples(data:ByteArray, append:Boolean = false):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Записывает кэшированные значения выборки в объект ByteArray
. Кэшированные значения выборки записываются в ByteArray
в том порядке, в котором они были извлечены (самые старые значения — первыми, самые новые значения в — последними).
Этот метод возвращает количество кэшированных значений выборки, записанных в ByteArray
(а не сами значения). Если параметр append
имеет значение false
(по умолчанию), то ByteArray
очищается перед записью значений выборки из кэша. Если append
имеет значение true, значения добавляются в объект ByteArray
, сохраняя старые значения. Следует добавлять значения выборки, если:
- необходимо сохранять определенное число доступных значений;
- необходимо хранить историю, размер которой больше кэша.
append
имеет значение true
, приложение должно очистить объект ByteArray
. Если объект ByteArray
не очищен, он продолжает расти, что потенциально может вызвать аварийное закрытие приложения.
Кэш очищается после того, как значения выборки записываются в объект ByteArray
.
Ошибка IOError
выдается, если устройство выключено на момент вызова этого метода.
Параметры
data:ByteArray — Объект ByteArray, в котором хранятся извлеченные данные. Он заполняется значениями выборок, записанными в виде двойных чисел. Объект ByteArray содержит значение элемента управления NaN на тот случай, если не обнаружено изменение положения элемента управления.
| |
append:Boolean (default = false ) — Флаг, который определяет способ записи данных в ByteArray . Если установлено значение true , значения выборки записываются в конец массива. Если установлено значение false , содержимое объекта ByteArray удаляется, после чего данные записываются в массив. Значение по умолчанию равно false .
|
int — Количество выборок (не значений), записанное в объект ByteArray .
|
Выдает
ArgumentError — Когда data имеет значение null.
| |
IOError — Когда этот метод вызывается и устройство отключено.
|
getControlAt | () | метод |
public function getControlAt(i:int):GameInputControl
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Извлекает определенный элемент управления устройства.
GameInputDevice хранит доступные на устройстве элементы управления в списке. Доступ к отдельным элементам управления на устройстве можно получить с помощью метода getControlAt()
.
Порядок элементов управления в индексе может изменяться каждый раз при добавлении или удалении устройства. Можно проверить свойство id
объекта GameInputControl
, чтобы найти определенный элемент управления.
Получить элементы управления можно, даже если устройство не включено. Однако нельзя получить значения элемента управления от выключенного устройства. Эта функция позволяет считывать свойства элемента управления до включения устройства, которому он принадлежит. Благодаря этой возможности можно определить, отвечает ли устройство потребностям приложения, прежде чем включать его.
Параметры
i:int — Позиция индекса GameInputControl в списке GameInputControls.
|
GameInputControl — Объект GameInputControl в указанной позиции индекса.
|
Выдает
RangeError — Когда индекс меньше нуля или больше (numControls - 1) .
|
startCachingSamples | () | метод |
public function startCachingSamples(numSamples:int, controls:Vector.<String>):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Просит данное устройство приступить к сохранению значений выборки в кэше. Свойство sampleInterval
определяет частоту выборки. Параметр numSamples
определяет число выборок, которое необходимо кэшировать. Параметр controls
определяет идентификаторы элементов управления, для которых требуется выполнять выборку значений.
Значения элементов управления сохраняются в кэше в указанном порядке. Для извлечения значений выборки необходимо вызвать метод getCachingSamples()
.
Если объем памяти, необходимый для кэширования значений выборки, больше значения, указанного в константе MAX_BUFFER_SIZE
, этот метод создает ошибку MemoryError
. Выдается ошибка IOError
, если устройство не было включено перед вызовом этого метода.
Параметры
numSamples:int — Количество выборок, которое должно храниться в кэше. При получении выборок их количество всегда меньше или равно numSamples .
| |
controls:Vector.<String> — Вектор String . Каждый объект String является идентификатором элемента управления. Выборки записываются в том же порядке, который задан в данном векторе.
|
Выдает
RangeError — Когда значение numSamples меньше или равно нулю или индекс записи в controls меньше нуля или больше (numControls - 1) .
| |
ArgumentError — Когда controls имеет значение null , или не содержит ни одной записи, или содержит недопустимые записи.
| |
IOError — Когда этот метод вызывается для выключенного устройства.
| |
MemoryError — Когда размер кэша (number of values * samples) больше MAX_BUFFER_SIZE .
|
stopCachingSamples | () | метод |
public function stopCachingSamples():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Прекращает кэширование выборки. Хотя события изменения для элементов управления все еще отправляются, выборки больше не кэшируются. Значения по-прежнему извлекаются с частотой, определенной в свойстве sampleInterval
, однако они не сохраняются в кэше. По этой причине можно извлечь только последнее значение.
Выдает
IOError — Когда этот метод вызывается до включения устройства.
|
MAX_BUFFER_SIZE | Константа |
public static const MAX_BUFFER_SIZE:int = 32000
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 3.7 |
Задает максимальный размер для буфера, используемого для кэширования выборки значений элементов управления. Если startCachingSamples
возвращает выборки, для кэширования которых требуется больше памяти, чем указано, выдается ошибка памяти.
Tue Jun 12 2018, 11:34 AM Z