在我的项目中,游戏开始时加速度计事件正常。当游戏通过页面到达游戏并点击重启按钮时。重新启动整个游戏时所有对象都运行良好,所有值都已重置但加速度计不起作用。
先谢谢。
代码如下:
if (Accelerometer.isSupported)
{
acc = new Accelerometer();
acc.addEventListener(AccelerometerEvent.UPDATE,updateFn);
}
public function updateFn(e:AccelerometerEvent):void
{
targetX = e.accelerationX * 9.8;
}
答案 0 :(得分:0)
只需在应用程序启动/激活后注册加速器,并将其值保存到每个加速器更新的全局变量上,并在每次将应用程序置于后台/停用/退出时将其禁用。例如:
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 DEACTIVATE-ACTIVATE app when in the background,因为NativeApplication存在一些问题。