我们在使用cocoStudio工具时,按钮控件Button对应的资源有三种状态, 我们可以分别针对三种状态设置不同的图片。然后在程序中通过方法显示 为不同的状态。 1、初始状态:Normal状态 bool Widget::init() { if (CCNode::init()) { setBright(true); } return false; } 2、 /* Button切换到Disable状态(禁止状态),_bright默认为真, 可以调用setBright(false)把Button切换到Disable状态。 */ void Widget::setBright(bool bright) { _bright = bright; if (_bright) { _brightStyle = BRIGHT_NONE; setBrightStyle(BRIGHT_NORMAL); } else { onPressStateChangedToDisabled(); } } 3、 --切换到Pressed状态,即按下状态 void Widget::setFocused(bool fucos) { if (fucos == _focus) { return; } _focus = fucos; if (_bright) //默认为true { if (_focus) { //如果为true,则调用setBrightStyle函数,最终调用 //onPressStateChangedToPressed方法切换到Pressed状态。 setBrightStyle(BRIGHT_HIGHLIGHT); } else { setBrightStyle(BRIGHT_NORMAL); } } else { //如果_bright为false,则直接切换到Disabled状态 onPressStateChangedToDisabled(); } } void Widget::setBrightStyle(BrightStyle style) { if (_brightStyle == style) { return; } _brightStyle = style; switch (_brightStyle) { case BRIGHT_NORMAL: onPressStateChangedToNormal(); break; case BRIGHT_HIGHLIGHT: onPressStateChangedToPressed(); break; default: break; } }