• Cocos2d-x UIButton按钮无效


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

  • 相关阅读:
    .NET开发人员如何开始使用ML.NET
    微软开源 Try .NET
    在kubernetes 集群内访问k8s API服务
    微软发布ML.NET 1.0
    现代“十二要素应用”与 Kubernetes
    .NET和Docker ,比翼双飞
    .NET Core 时代已经到了,你准备好了吗
    一份.NET 容器化的调查小结
    容器化时代我们应当选择Kubernetes
    机器学习 ML.NET 发布 1.0 RC
  • 原文地址:https://www.cnblogs.com/SkyflyBird/p/4982811.html
Copyright © 2020-2023  润新知