Cocos按钮置灰

Cocos按钮置灰,第1张

概述先贴代码: function FreeCoinLayer:ensureBtn( btn , enable ) print("FreeCoinLayer:ensureBtn") btn:setTouchEnabled( enable ) btn:setBright( enable ) if enable then btn:getVirtualRende

先贴代码:

function FreeCoinLayer:ensureBtn( btn,enable )    print("FreeCoinLayer:ensureBtn")    btn:settouchEnabled( enable )    btn:setBright( enable )    if enable then        btn:getVirtualRenderer():setState(0)    else        btn:getVirtualRenderer():setState(1)    end    --vr:setState(1)    local children = btn:getChildren()    for name,child in pairs( children ) do        local vr = child:getVirtualRenderer()        if enable then            vr:setState( 0 )        else            vr:setState( 1 )        end    endend

简单介绍一下函数作用,参数分别是一个按钮对象以及一个是否要激活的一个开关。

首先是获取到这个按钮的渲染器,通过getVirtualRenderer。看一下这个函数的源码,我贴出来:

Node* button::getVirtualRenderer(){    if (_bright)    {        switch (_brightStyle)        {            case BrightStyle::norMAL:                return _buttonnormalRenderer;            case BrightStyle::HIGHliGHT:                return _buttonClickedRenderer;            default:                return nullptr;        }    }    else    {        return _buttonDisabledRenderer;    }}

再贴一下返回值的类型:

    Scale9Sprite* _buttonnormalRenderer;    Scale9Sprite* _buttonClickedRenderer;    Scale9Sprite* _buttonDisabledRenderer;

其实说白了返回的是一个九妹类型,通过这个对象的setState就可以设置相应的效果了,不需要重写shader。

我这个引擎用的是3.4

总结

以上是内存溢出为你收集整理的Cocos按钮置灰全部内容,希望文章能够帮你解决Cocos按钮置灰所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1084404.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存