1. 程式人生 > >cocoStudio: Button三種狀態切換

cocoStudio: Button三種狀態切換

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