码迷,mamicode.com
首页 > 其他好文 > 详细

Cocos2d-x UIButton按钮无效

时间:2015-11-21 01:54:26      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:

使用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

Cocos2d-x UIButton按钮无效

标签:

原文地址:http://www.cnblogs.com/SkyflyBird/p/4982811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!