패키지 | flash.sensors |
클래스 | public class Accelerometer |
상속 | Accelerometer EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2, Flash Player 10.1, Flash Lite 4 |
참고:
Accelerometer.isSupported
속성을 사용하여 런타임 환경이 이 기능을 사용할 수 있는지 테스트합니다. Accelerometer 클래스와 그 멤버는 API 항목별로 나열된 런타임 버전에 액세스할 수 있는 반면, 런타임의 현재 환경은 이 기능의 사용 가능 여부를 결정합니다. 예를 들어 Flash Player 10.1의 경우 Accelerometer 클래스 속성을 사용하여 코드를 컴파일할 수 있지만 Accelerometer.isSupported
속성을 사용하여 Flash Player 런타임의 현재 구축 환경에서 Accelerometer 기능을 사용할 수 있는지를 테스트해야 합니다. Accelerometer.isSupported
가 런타임에 true
인 경우 Accelerometer가 현재 지원되는 것입니다.
AIR 프로파일 지원: 이 기능은 휴대 장치에서만 지원됩니다. 데스크톱 또는 AIR for TV 장치에서는 지원되지 않습니다. 여러 프로파일 간 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 | 속성 |
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
메서드는 원하는 업데이트 시간 간격을 설정하는 데 사용됩니다. 시간 간격은 밀리초 단위로 측정됩니다. 업데이트 간격은 배터리 전원을 절약하기 위한 힌트로만 사용됩니다. 가속 업데이트의 실제 시간 간격은 이 값보다 크거나 작을 수 있습니다. 업데이트 간격을 변경하면 등록된 모든 리스너에 영향을 줍니다. setRequestedUpdateInterval()
메서드를 호출하지 않고 Accelerometer 클래스를 사용할 수 있습니다. 이 경우 응용 프로그램은 장치의 기본 간격에 따라 업데이트를 받습니다.
매개 변수
interval:Number — 요청된 업데이트 간격입니다. interval 이 0으로 설정되어 있으면 최소 지원 업데이트 간격이 사용됩니다.
|
오류
ArgumentError — 지정한 interval 이 영(0)보다 작습니다.
|
status | 이벤트 |
flash.events.StatusEvent
속성 StatusEvent.type =
flash.events.StatusEvent.STATUS
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2, Flash Player 10.1, Flash Lite 4 |
가속도계의 상태가 변경될 때 전달됩니다.
참고: 일부 장치에서는 가속도계를 항상 사용할 수 있습니다. 이러한 장치에서는 Accelerometer 객체가 status
이벤트를 전달하지 않습니다.
status
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
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()
를 통해 새 리스너 함수가 연결되는 경우 가속도계의 현재 값을 제공하기 위해 모든 등록된 리스너에 이 이벤트가 한 번 전송됩니다.- 장치에 지정된 간격으로 플랫폼에서 가속도계 업데이트를 가져올 때마다 전달됩니다.
- 유휴 상태 후 런타임이 다시 시작되는 경우와 같이 응용 프로그램이 가속도계의 변경 내용을 놓칠 때마다 전달됩니다.
AccelerometerEvent
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
timestamp | Accelerometer 업데이트의 타임스탬프입니다. |
accelerationX | x축을 기준으로 한 G 가속 값(9.8m/sec/sec)입니다. |
accelerationY | y축을 기준으로 한 G 가속 값(9.8m/sec/sec)입니다. |
accelerationZ | z축을 기준으로 한 G 가속 값(9.8m/sec/sec)입니다. |
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, 03:17 PM Z