flash.sensorsAccelerometer Класс Accelerometer отправляет события на основании активности, обнаруживаемой датчиком движения устройства.Класс Accelerometer flash.events:EventDispatcher Класс Accelerometer отправляет события на основании активности, обнаруживаемой датчиком движения устройства. Эти данные представляют местоположение устройства или движение вдоль трехмерной оси. Когда устройство перемещается, датчик распознает движение и возвращает данные об ускорении. Класс Accelerometer предоставляет методы, позволяющие сделать запрос, поддерживается ли акселерометр, а также установить частоту отправки событий ускорения.

Примечание. Проверьте свойство Accelerometer.isSupported, чтобы узнать, поддерживает ли текущая платформа среды выполнения использование этой функции. Хотя класс Accelerometer и его элементы доступны для версий среды выполнения, перечисленных для каждой записи API, доступность данной функции определяется текущей платформой среды выполнения. Например, можно скомпилировать код с использованием свойств класса Accelerometer для Flash Player 10.1, но необходимо проверить свойство Accelerometer.isSupported, чтобы проверить доступность класса Accelerometer на текущей платформе, в которой развернута среда выполнения Flash Player. Если свойство Accelerometer.isSupported возвращает значение true во время выполнения, то текущая платформа поддерживает класс Accelerometer.

Поддержка в профилях AIR: эта функция поддерживается только на мобильных устройствах. Она не поддерживается на компьютерах или в среде AIR для телевизионных устройств. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».

В следующем примере приложение перемещает объект Sprite в зависимости от событий 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; } } }
isSupportedflash.events.AccelerometerEventМикаэль Шез (Michael Chaize): AIR и акселерометрМикаэль Шез (Michael Chaize): Управление средой AIR status Отправляется, когда акселерометр изменяет свое состояние.flash.events.StatusEvent.STATUSflash.events.StatusEvent Отправляется, когда акселерометр изменяет свое состояние.

Примечание. На некоторых устройствах акселерометр всегда доступен. На таких устройствах объект Accelerometer никогда не отправляет событие status.

update Событие update отправляется в ответ на получение обновлений от датчика акселерометра.flash.events.AccelerometerEvent.UPDATEflash.events.AccelerometerEvent Событие update отправляется в ответ на получение обновлений от датчика акселерометра. Это событие отправляется при следующих обстоятельствах:

  • когда добавляется новая функция прослушивателя с помощью метода addEventListener(), это событие отправляется один раз всем зарегистрированным прослушивателям для того, чтобы передать текущее значение акселерометра;
  • каждый раз при получении обновлений акселерометра от платформы через установленные устройством интервалы;
  • каждый раз, когда приложение пропускает изменение показаний акселерометра (например, когда среда выполнения восстанавливается после режима ожидания).

Accelerometer Создает новый экземпляр Accelerometer. Создает новый экземпляр Accelerometer. setRequestedUpdateInterval Для установки требуемых интервалов обновления служит метод setRequestedUpdateInterval.Значение свойства interval меньше нуля. ArgumentErrorArgumentErrorintervalNumberТребуемый интервал обновления. Если для interval установлено значение 0, используется минимальный поддерживаемый интервал обновления. Для установки требуемых интервалов обновления служит метод setRequestedUpdateInterval. Интервал времени измеряется в миллисекундах. Интервал обновления предназначен только в качестве ориентира для экономии заряда аккумулятора. Фактическое время между обновлениями акселерометра может быть больше или меньше этого значения. Любое изменение в интервале обновления затрагивает все зарегистрированные прослушиватели. Класс Accelerometer можно использовать, не вызывая метод setRequestedUpdateInterval(). В этом случае, приложение получает обновления с интервалом, используемым устройством по умолчанию. isSupported Свойство isSupported имеет значение true, если датчик акселерометра доступен на устройстве, в противном случае оно имеет значение false.Boolean Свойство isSupported имеет значение true, если датчик акселерометра доступен на устройстве, в противном случае оно имеет значение false. В следующем примере используется свойство 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 Указывает, запретил ли пользователь доступ к акселерометру: нет доступа (true), или доступ разрешен (false).Boolean Указывает, запретил ли пользователь доступ к акселерометру: нет доступа (true), или доступ разрешен (false). При изменении этого значения отправляется событие status. status
Geolocation Класс Geolocation отправляет события в ответ на датчик местоположения устройства.flash.events:EventDispatcher Класс Geolocation отправляет события в ответ на датчик местоположения устройства.

Если устройство поддерживает определение географического положения, этот класс можно использовать для получения данных о местоположении устройства. Географическое местоположение отображается на устройстве в виде координат широты и долготы (в стандартном формате WGS-84). Когда местоположение устройства меняется, отправляются обновления. Если устройство поддерживает такую функцию, можно получать сведения о высотной отметке, точности, направлении, скорости и метке времени последнего изменения местоположения.

Поддержка в профилях AIR: эта функция поддерживается только на мобильных устройствах. Она не поддерживается на компьютерах или в среде AIR для телевизионных устройств. Используйте свойство Geolocation.isSupported, чтобы проверить наличие поддержки в cреде выполнения. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».

В следующем примере приложение отображает широту, долготу и горизонтальную погрешность событий update класса GeoLocation по мере их поступления. package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.GeolocationEvent; import flash.sensors.Geolocation; import flash.text.TextField; import flash.text.TextFormat; public class GeolocationTest extends Sprite { private var geo:Geolocation; private var log:TextField; public function GeolocationTest() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; setUpTextField(); if (Geolocation.isSupported) { geo = new Geolocation(); geo.setRequestedUpdateInterval(100); geo.addEventListener(GeolocationEvent.UPDATE, geolocationUpdateHandler); } else { log.text = "No geolocation support."; } } private function geolocationUpdateHandler(event:GeolocationEvent):void { log.text = "latitude:" + event.latitude.toString() + "°\n"; log.appendText("longitude:" + event.longitude.toString() + "°\n"); log.appendText("horizontal accuracy:" + event.horizontalAccuracy.toString() + " m"); } private function setUpTextField():void { log = new TextField(); var format:TextFormat = new TextFormat("_sans", 24); log.defaultTextFormat = format; log.border = true; log.wordWrap = true; log.multiline = true; log.x = 10; log.y = 10; log.height = stage.stageHeight - 20; log.width = stage.stageWidth - 20; addChild(log); } } }
Кристоф Конрац (Cristophe Coenraets): Совместная работа с Картами Google в многопользовательской средеstatus Объект Geolocation отправляет события status, когда пользователь изменяет доступ к датчику местоположения.flash.events.StatusEvent.STATUSflash.events.StatusEvent Объект Geolocation отправляет события status, когда пользователь изменяет доступ к датчику местоположения. Например, если в ответ на запрос устройства пользователь запрещает приложению обращаться к данным о местоположении, объект Geolocation отправляет событие status. Когда состояние изменяется таким образом, что датчик местоположения становится недоступным, свойство muted экземпляра Geolocation имеет значение true. mutedupdate Событие update отправляется в ответ на получение обновлений от датчика местоположения.flash.events.GeolocationEvent.UPDATEflash.events.GeolocationEvent Событие update отправляется в ответ на получение обновлений от датчика местоположения. Это событие отправляется при следующих обстоятельствах:

  • когда добавляется новая функция прослушивателя с помощью метода addEventListener(), это событие отправляется один раз всем зарегистрированным прослушивателям для того, чтобы передать текущее значение датчика местоположения;
  • каждый раз при получении обновлений датчика местоположения от платформы через установленные устройством интервалы;
  • каждый раз, когда приложение пропускает изменение местоположения (например, когда приложение восстанавливается после спящего режима).

Примечание. Устройства iPhone первого поколения, которые не оснащены модулем GPS, отправляют события update только в редких случаях. На этих устройствах объект Geolocation сначала отправляет одно или два события update. После этого он отправляет события update в случае заметного изменения информации.

Geolocation Создает новый экземпляр Geolocation. Создает новый экземпляр Geolocation. setRequestedUpdateInterval Служит для указания интервала обновлений в миллисекундах.Значение свойства interval меньше нуля. ArgumentErrorArgumentErrorintervalNumberзапрошенный интервал обновления. Если interval <= 0, вызов этого метода игнорируется. Служит для указания интервала обновлений в миллисекундах. Интервал обновления предназначен только в качестве ориентира для экономии заряда аккумулятора. Фактическое время между обновлениями датчика местоположения может быть больше или меньше этого значения. Любое изменение интервала обновления с помощью этого метода затрагивает все зарегистрированные прослушиватели события update. Класс Geolocation можно использовать, не вызывая метод setRequestedUpdateInterval(). В этом случае платформа будет передавать обновления с учетом собственного интервала по умолчанию.

Примечание. Устройства iPhone первого поколения, которые не оснащены модулем GPS, отправляют события update только в редких случаях. На этих устройствах объект Geolocation сначала отправляет одно или два события update. После этого он отправляет события update в случае заметного изменения информации.

isSupported Указывает, доступен ли датчик местоположения на устройстве (true); в противном случае имеет значение false.Boolean Указывает, доступен ли датчик местоположения на устройстве (true); в противном случае имеет значение false. muted Указывает, запретил ли пользователь доступ к датчику местоположения: нет доступа (true), или доступ разрешен (false).Boolean Указывает, запретил ли пользователь доступ к датчику местоположения: нет доступа (true), или доступ разрешен (false). При изменении этого значения отправляется событие status. status