我們在使用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;
}
}