在我的项目中,在游戏开始时,加速度计事件工作得很好。当游戏到达游戏页面并点击重新启动按钮。当重新开始整个游戏时,所有的对象都工作得很好,而且所有的值都被重置了,但是加速度计不工作。
提前谢谢。
代码如下:
if (Accelerometer.isSupported)
{
acc = new Accelerometer();
acc.addEventListener(AccelerometerEvent.UPDATE,updateFn);
}
public function updateFn(e:AccelerometerEvent):void
{
targetX = e.accelerationX * 9.8;
}发布于 2015-03-13 13:06:59
只需在应用程序启动/激活后注册Accelerator,并在每次加速器更新时将其值保存到全局变量中,并在每次将应用程序放到后台/停用/退出时禁用它。例如:
NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, handleApplicationDeactivated);
NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, handleApplicationActivated);
function handleApplicationActivated( e:Event):void {
// Check if Accelerometer is already activated
if( acc != null ) return;
acc = new Accelerometer();
acc.addEventListener(AccelerometerEvent.UPDATE,update);
}
function update( e:AccelerometerEvent ):void {
GlobalVars.accX = e.accelerationX;
GlobalVars.accY = e.accelerationY;
GlobalVars.accZ = e.accelerationZ;
}
function handleApplicationDeactivated( e:Event):void {
acc.removeEventListener(AccelerometerEvent.UPDATE,update);
acc = null;
}编辑:由于NativeApplication有一些问题,您可能希望使用激活/停用代码:NativeApplication DEACTIVATE-ACTIVATE app when in the background。
https://stackoverflow.com/questions/27523848
复制相似问题