Пакет | flash.sensors |
Класс | public class Accelerometer |
Наследование | Accelerometer EventDispatcher Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2, Flash Player 10.1, Flash Lite 4 |
Примечание. Проверьте свойство Accelerometer.isSupported
, чтобы узнать, поддерживает ли текущая платформа среды выполнения использование этой функции. Хотя класс Accelerometer и его элементы доступны для версий среды выполнения, перечисленных для каждой записи API, доступность данной функции определяется текущей платформой среды выполнения. Например, можно скомпилировать код с использованием свойств класса Accelerometer для Flash Player 10.1, но необходимо проверить свойство Accelerometer.isSupported
, чтобы проверить доступность класса Accelerometer на текущей платформе, в которой развернута среда выполнения Flash Player. Если свойство Accelerometer.isSupported
возвращает значение true
во время выполнения, то текущая платформа поддерживает класс Accelerometer.
Поддержка в профилях AIR: эта функция поддерживается только на мобильных устройствах. Она не поддерживается на компьютерах или в среде AIR для телевизионных устройств. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».
Дополнительно
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
isSupported : Boolean [статические] [только для чтения]
Свойство isSupported имеет значение true, если датчик акселерометра доступен на устройстве, в противном случае оно имеет значение false. | Accelerometer | ||
muted : Boolean [только для чтения]
Указывает, запретил ли пользователь доступ к акселерометру: нет доступа (true), или доступ разрешен (false). | Accelerometer |
Метод | Определено | ||
---|---|---|---|
Создает новый экземпляр Accelerometer. | Accelerometer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Посылает событие в поток событий. | EventDispatcher | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Для установки требуемых интервалов обновления служит метод setRequestedUpdateInterval. | Accelerometer | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. | EventDispatcher | |||
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. | EventDispatcher | |||
Отправляется, когда акселерометр изменяет свое состояние. | Accelerometer | |||
Событие update отправляется в ответ на получение обновлений от датчика акселерометра. | Accelerometer |
isSupported | свойство |
isSupported:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2, Flash Player 10.1, Flash Lite 4 |
Свойство isSupported
имеет значение true
, если датчик акселерометра доступен на устройстве, в противном случае оно имеет значение false
.
Реализация
public static function get isSupported():Boolean
Пример ( Использование этого примера )
Accelerometer.isSupported
, чтобы проверить наличие поддержки класса Accelerometer во время выполнения. Если текущая платформа поддерживает возможности класса Accelerometer, то для объекта Accelerometer добавляется прослушиватель событий, и связанный с ним обработчик вводит в текстовое поле метку времени и значения ускорения. В противном случае в текстовом поле появляется сообщение о том, что текущая среда не поддерживает данную функцию.
var myTextField:TextField = new TextField(); myTextField.width = 200; addChild(myTextField); var acc1:Accelerometer = new Accelerometer(); var isSupported:Boolean = Accelerometer.isSupported; checksupport(); function checksupport():void { if (isSupported) { myTextField.text = "Accelerometer feature supported"; acc1.addEventListener(AccelerometerEvent.UPDATE, updateHandler); } else { myTextField.text = "Accelerometer feature not supported"; } } function updateHandler(evt:AccelerometerEvent):void { myTextField.text = String("at: " + evt.timestamp + "\n" + "acceleration X: " + evt.accelerationX + "\n" + "acceleration Y: " + evt.accelerationY + "\n" + "acceleration Z: " + evt.accelerationZ); }
muted | свойство |
muted:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2, Flash Player 10.1 |
Указывает, запретил ли пользователь доступ к акселерометру: нет доступа (true
), или доступ разрешен (false
). При изменении этого значения отправляется событие status
.
Реализация
public function get muted():Boolean
Связанные элементы API
Accelerometer | () | Конструктор |
public function Accelerometer()
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2, Flash Player 10.1, Flash Lite 4 |
Создает новый экземпляр Accelerometer.
setRequestedUpdateInterval | () | метод |
public function setRequestedUpdateInterval(interval:Number):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2, Flash Player 10.1, Flash Lite 4 |
Для установки требуемых интервалов обновления служит метод setRequestedUpdateInterval
. Интервал времени измеряется в миллисекундах. Интервал обновления предназначен только в качестве ориентира для экономии заряда аккумулятора. Фактическое время между обновлениями акселерометра может быть больше или меньше этого значения. Любое изменение в интервале обновления затрагивает все зарегистрированные прослушиватели. Класс Accelerometer можно использовать, не вызывая метод setRequestedUpdateInterval()
. В этом случае приложение получает обновления с интервалом, используемым устройством по умолчанию.
Параметры
interval:Number — Требуемый интервал обновления. Если для interval установлено значение 0, используется минимальный поддерживаемый интервал обновления.
|
Выдает
ArgumentError — Значение свойства interval меньше нуля.
|
status | Событие |
flash.events.StatusEvent
свойство StatusEvent.type =
flash.events.StatusEvent.STATUS
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2, Flash Player 10.1, Flash Lite 4 |
Отправляется, когда акселерометр изменяет свое состояние.
Примечание. На некоторых устройствах акселерометр всегда доступен. На таких устройствах объект Accelerometer никогда не отправляет событие status
.
type
для объекта события status
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
code | Описание состояния объекта. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
level | Категория сообщения, например, status , warning или error . |
target | Объект, сообщающий свое состояние. |
update | Событие |
flash.events.AccelerometerEvent
свойство AccelerometerEvent.type =
flash.events.AccelerometerEvent.UPDATE
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2, Flash Player 10.1, Flash Lite 4 |
Событие update
отправляется в ответ на получение обновлений от датчика акселерометра. Это событие отправляется при следующих обстоятельствах:
- когда добавляется новая функция прослушивателя с помощью метода
addEventListener()
, это событие отправляется один раз всем зарегистрированным прослушивателям для того, чтобы передать текущее значение акселерометра; - каждый раз при получении обновлений акселерометра от платформы через установленные устройством интервалы;
- каждый раз, когда приложение пропускает изменение показаний акселерометра (например, когда среда выполнения восстанавливается после режима ожидания).
type
для объекта события AccelerometerEvent
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
timestamp | Метка времени обновления объекта Accelerometer. |
accelerationX | Значение ускорения в Галах (9,8 м/с2) по оси X. |
accelerationY | Значение ускорения в Галах (9,8 м/с2) по оси Y. |
accelerationZ | Значение ускорения в Галах (9,8 м/с2) по оси Z. |
update
акселерометра. События update
акселерометра указывают на перемещение устройства.
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.AccelerometerEvent; import flash.sensors.Accelerometer; public class AccelerometerTest extends Sprite { private var ball:Sprite; private var accelerometer:Accelerometer; private var xSpeed:Number = 0; private var ySpeed:Number = 0; private const RADIUS = 20; public final function AccelerometerTest() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; createBall(); if (Accelerometer.isSupported) { accelerometer = new Accelerometer(); accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler); stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler); } } private final function createBall():void { ball = new Sprite(); ball.graphics.beginFill(0xFF0000); ball.graphics.drawCircle(0, 0, RADIUS); ball.cacheAsBitmap = true; ball.x = stage.stageWidth / 2; ball.y = stage.stageHeight / 2; addChild(ball); } private final function enterFrameHandler(event:Event):void { event.stopPropagation(); moveBall(); } private final function moveBall():void { var newX:Number = ball.x + xSpeed; var newY:Number = ball.y + ySpeed; if (newX < 20) { ball.x = RADIUS; xSpeed = 0; } else if (newX > stage.stageWidth - RADIUS) { ball.x = stage.stageWidth - RADIUS; xSpeed = 0; } else { ball.x += xSpeed; } if (newY < RADIUS) { ball.y = RADIUS; ySpeed = 0; } else if (newY > stage.stageHeight - RADIUS) { ball.y = stage.stageHeight - RADIUS; ySpeed = 0; } else { ball.y += ySpeed; } } private final function accUpdateHandler(event:AccelerometerEvent):void { xSpeed -= event.accelerationX * 2; ySpeed += event.accelerationY * 2; } } }
Tue Jun 12 2018, 11:34 AM Z