cocos2dx lua UI栈

本文详细介绍了如何使用Cocos2dx实现UI栈操作,并通过模拟安卓Activity的操作,使得用户可以通过模拟安卓原生方式退出UI界面,避免了直接使用返回键退出的不便。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值