CocosStudio控件的显示和隐藏

本文探讨了在CocosStudio开发中如何有效地管理控件的显示和触摸事件。通过分析setEnabled()和setVisible()的区别,指出在父节点启用时,即使设置setEnabled(false),子节点仍可能被绘制。同时,如果使用setEnabled(false)隐藏控件,恢复显示需结合setVisible(true)和setTouchEnabled(true),但问题在于控件的绘制依赖于_enabled属性。因此,建议使用setVisible()和setTouchEnabled()来控制子节点的可见性和触控状态。
摘要由CSDN通过智能技术生成

在开发中经常要根据改变按钮等控件的显示状态和触摸事件,有两种方法一种是 1.setEnabled() 2.setVisible() 和 setTouchEnabled() 最初只是认为setEnabled = setTouchEnabled()和setVisible(). 有时候在底层设置了通过设置setEnabled(false) 隐藏了控件并不可触摸,但有时还是没有生效。 UIWidget代码如下:

void Widget::setEnabled(bool enabled)
{
    _enabled = enabled;
    if(_widgetChildren && _widgetChildren->count() > 0)
    {
        CCObject* child;
        CCARRAY_FOREACH(_widgetChildren, child)
        {
            ((Widget*)child)->setEnabled(enabled);
        }
    }
}

实际上已经生效,只是如果父节点设置了setEnabled(true),则会遍历所有子节点并设置设置_enabl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值