Quick 如何将一个节点改成灰色的

我看到创建有一个接口可以将精灵置灰,但是如果一个按钮想在不可点击状态的时候,disable图片显示成灰色,怎么操作?我看了一下UIButton没有直接用精灵来更新state image的!有没有一种方法直接将按钮搞成灰色!?

这个有个直觉的办法,就是遍历子节点然后tolua.type()看看是不是精灵然后变灰。。这是我看到你这问题的一个直觉。

简单直接的方式是,button创建是第3个参数就是禁用时的图片,setBright(false)可以让button显示禁用的图片

http://www.cocoachina.com/bbs/read.php?tid=277574&page=1#1210068
用刀哥的办法,挺好用的。

local vertDefaultSource = 

                       attribute vec4 a_position;
                       attribute vec2 a_texCoord;
                       attribute vec4 a_color;  

                       #ifdef GL_ES
                           varying lowp vec4 v_fragmentColor;
                           varying mediump vec2 v_texCoord;
                       #else
                           varying vec4 v_fragmentColor;
                           varying vec2 v_texCoord;
                       #endif 

                       void main()
                       {
                           gl_Position = CC_PMatrix * a_position; 
                           v_fragmentColor = a_color;
                           v_texCoord = a_texCoord;
                       }

                       ]]
    
local pszFragSource = 

                     #ifdef GL_ES 
                              precision mediump float;
                        #endif 
                        varying vec4 v_fragmentColor; 
                        varying vec2 v_texCoord; 

                        void main(void) 
                        { 
                            vec4 c = texture2D(CC_Texture0, v_texCoord);
                            gl_FragColor.xyz = vec3(0.4*c.r + 0.4*c.g +0.4*c.b);
                            gl_FragColor.w = c.w; 
                        }

                        ]]

local pProgram = cc.GLProgram:createWithByteArrays(vertDefaultSource, pszFragSource)

pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_POSITION, cc.VERTEX_ATTRIB_POSITION)
pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_COLOR, cc.VERTEX_ATTRIB_COLOR)
pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_TEX_COORD, cc.VERTEX_ATTRIB_FLAG_TEX_COORDS)
pProgram:link()
pProgram:updateUniforms()
node:setGLProgram(pProgram)

印象quick的filter好像有这个功能,楼主查查看

忘说了我的是2.2.5,你这些代码在2.2.5上面也可以? local pProgram = cc.GLProgram:createWithByteArrays(vertDefaultSource, pszFragSource) 这些接口都没看到啊!

2.2.5 就用 filter 吧,

我提供的是 3.x 版本的

既然是按钮,你初始化按钮的时候给disable状态传个不可点的灰色图片不就好了撒