下面的代码根据加速度计移动动画片段。如何检测它移动的方向或静止状态?
import flash.sensors.Accelerometer;
import flash.events.AccelerometerEvent;
var my_acc:Accelerometer = new Accelerometer();
my_acc.setRequestedUpdateInterval(50);
my_acc.addEventListener(AccelerometerEvent.UPDATE, onAccUpdate);
function onAccUpdate(e:AccelerometerEvent):void{
my_dot.x -= (e.accelerationX*10);
if (my_dot.x < 0) {
my_dot.x = 0;
} else if (my_dot.x > stage.stageWidth) {
my_dot.x = stage.stageWidth;
}
}
答案 0 :(得分:3)
使用
获得真实的加速度矢量Sqrt(accelerationX^2 + accelerationY^2)
然后,你用
获得度数的方向Cos^-1 (accelerationX / realAcceleration)
尝试以下方法:
var accVector = Math.sqrt(Math.pow(e.accelerationX,2) +
Math.pow(e.accelerationY,2))
var direction = Math.acos(e.accelerationX / accVector)
并注意你以弧度为单位得到direction
!
如果你想要deegrees:var directionDeg = direction * 180/Math.PI
如果您的accelerationY
为否定,则需要更改directionDeg
的符号,并且(如果需要)添加360以获得正数。