Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> quick-cocos2d-x android返回鍵監聽並實現原生退出對話框

quick-cocos2d-x android返回鍵監聽並實現原生退出對話框

編輯:關於Android編程

這兩天終於閒了一下,就順手又把quick撿起來又學了學,一直都覺得quick比cocos2dx那套lua綁定要方便許多,今天試了下android返回鍵的監聽,還是挺好弄的,所以就有了這篇。

首先說明一下使用的quick版本——2.2.5。

直接上代碼

function MainScene:addBackEvent()
    if device.platform == "android" then
        self.touchLayer = display.newLayer()
        self.touchLayer:addNodeEventListener(cc.KEYPAD_EVENT, function(event)
            if event.key == "back" then  
                --CCDirector:sharedDirector():endToLua()
                local javaClassName = "com/cocos2dx/testgame/Testgame"
                local javaMethodName = "exit"
                luaj.callStaticMethod(javaClassName, javaMethodName)
            end
        end)
        self.touchLayer:setKeypadEnabled(true)
        self:addChild(self.touchLayer)
    end 
end
比較好理解,創建一個層,為該層添加一個事件監聽,這個事件監聽的類型是keypad,如果key的值是back那麼就執行裡面的代碼了,如果不需要顯示android原生的對話框,只要關閉程序,只需要執行上面代碼中注釋的部分就可以了。

2.2.3之後的版本在添加事件監聽上與之前有所不同,這裡需要注意下。

當然做軟件嘛,好歹有個溫馨提示,防止用戶無意點到退出游戲就不友好了,所以這裡調用了一下android原生對話框來顯示。quick提供了一個luajavabridge這個sample,可以很輕松調用到android中的靜態函數。

這裡還是貼一下android中調用的函數代碼

public static void exit() {
		instance.runOnUiThread(new Runnable() {			
			@Override
			public void run() {
				Builder builder = new Builder(instance);
				builder.setTitle("提示");
				builder.setMessage("確定退出嗎");
				builder.setIcon(android.R.drawable.ic_dialog_info);
				builder.setPositiveButton("確定", new OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						System.exit(0);						
					}
				});
				builder.setNegativeButton("取消", new OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						dialog.dismiss();					}
				}).show();				
			}
		});
	}
這樣就大功告成!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved