cocos2dx lua UI栈

来源:互联网 发布:java 文件读取到缓存中 编辑:程序博客网 时间:2024/05/22 00:47
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

0 0