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

 

posted @ 2016-04-01 13:39  leejuen  阅读(289)  评论(0编辑  收藏  举报