cocos2dx lua UI栈
1.UI栈的由来
由于写cocos2dx时很多时候你不想按安卓返回键退出。这时候你需要做的是模拟安卓原生方式
模拟安卓Activity的操作
1.让所有UI界面继承UIObject基类。
2.在UIObject基类中实现安卓返回键触发。
--[[
@brief 此处定义一些对UI进行操作的公共函数 @by 李俊 ]] wolf = wolf or {} local UIUtils = {} UIUtils._uistack = {} ------------------------------------------- --将一个对话框加入栈中 --@param uiobject 对话框 ------------------------------------------- function UIUtils.pushUI(uiobject) if uiobject.isDialog then UIUtils._uistack[#UIUtils._uistack+1] = uiobject end end ------------------------------------------- --将栈顶对话框弹出栈中,并删除。若栈顶无元素返回nil --return uiobject ------------------------------------------- function UIUtils.popUI() local uiobject = UIUtils._uistack[#UIUtils._uistack] UIUtils._uistack[#UIUtils._uistack] = nil return uiobject end ------------------------------------------- --将栈顶获取栈顶元素,不移除,若栈顶无元素返回nil --return uiobject ------------------------------------------- function UIUtils.topUI() local uiobject = UIUtils._uistack[#UIUtils._uistack] return uiobject end function UIUtils.initUIStack() UIUtils._uistack = {} end function UIUtils.countUISatck() return #UIUtils._uistack end wolf.UIUtils = UIUtils |