0

我使用AIR为Android制作游戏(意味着它在ActionScript 3中编程,与Flash相同)。禁用手机的后退按钮(AIR for Android/ActionScript 3)

我想要做的是让手机上的物理后退按钮不退出游戏,而应该暂停游戏。 (我将让这个它仍然会退出,如果按两次快速的游戏。)

但是我的代码是不工作:

public function Main() { 
    if (Capabilities.cpuArchitecture=="ARM") { 
     NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, onMainKeyDown); 
    } 
} 
private function onMainKeyDown(ke:KeyboardEvent) { 
    if (ke.keyCode==Keyboard.BACK) { 
     // Pause the game here. 
     ke.preventDefault(); 
     ke.stopImmediatePropagation(); 
    } 
} 

当我发布的东西到我的设备仍当我按下手机上的物理后退按钮时退出。

我在这里做错了什么?

编辑:只有一个空指针异常问题,我还没有发现。多么尴尬!

回答

0
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
      //Here you can do what ever you want to do while pressing the back button 
     } 
     return true; 

} 
0
NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false, 0, true) 

function onKeyDown(event:KeyboardEvent):void 
{ 
    if(event.keyCode == Keyboard.BACK) 
{ 
    event.preventDefault(); 
    event.stopImmediatePropagation(); 
    //handle the button press here. 
    } 
} 

请注意,如果你设置stage.displayState = FULL_SCREEN,没有键盘事件被发送到你的应用程序!改用stage.displayState = FULL_SCREEN_INTERACTIVE!