使用cocostudio 在cocos2d-x 编写项目功能时,将某个UIButton设置为无效的时候,即为:Button ->SetEnable(false)
出现问题: 按钮消失了。
然后尝试方法:
(1) Button ->setBright(false); 这样的情况下,设置的Normal,pressed,disable三种图片会进行切换,但是很不巧的是,你依然可以点击发生事件。
(2) 按照第一步的说法既然图片已经切换,既然能发生点击事件,那我这样做:
Button->SetBright(false);
Button->SetTouchEnabled(false);
这样的结果,总算是将按钮的图片切换为disable且无法点击了,问题似乎是解决了。
然而,在网上查询资料的时候,有这样的几句话让自己感觉有些道理,假如将某个按钮进行重复的设置SetTouchEnabled(false),SetTouchEnabled(true)极有可能导致该按钮点击无效。
既然如此,程序员的强迫症促使我找到了第三种方法。
(3)我将按钮如此设置,Button->SetEnable(false)。然后呢,打开UIWidget.cpp中的接口
void Widget::visit()
{
//if (_enabled) // 注释掉
{
CCNode::visit();
}
}
接着,打开:
void Widget::setEnabled(bool enabled)
{
_enabled = enabled;
if(_widgetChildren && _widgetChildren->count() > 0)
{
CCObject* child;
CCARRAY_FOREACH(_widgetChildren, child)
{
((Widget*)child)->setEnabled(enabled);
}
}
setBright( enabled );//增加此行
}
再次尝试,问题依然解决了。
因自己是新手,说不出太多的理所当然来,所以讲参考资料奉上,感谢原作者。
http://www.bkjia.com/qtjc/744857.html