[cocos2d-JSB/cocos2d-x篇]ControlButton的錯誤使用示例

文章撰寫日期︰2013/11/30 18:42
cocos2d-x使用版本︰2.1.5

一、問題

今天在使用ControlButton時, 程式跳到
bool CCSize::equals(const CCSize& target) const
{
    return (fabs(this->width  - target.width)  < FLT_EPSILON)
        && (fabs(this->height - target.height) < FLT_EPSILON);
}
報EXC_BAD_ACCESS導致crash問題。

二、解決辦法

ControlButton在初始化時,
由Sample我們看到code如下

// Creates and return a button with a default background and title color.
        var backgroundButton = cc.Scale9Sprite.create(s_extensions_button);
        var backgroundHighlightedButton = cc.Scale9Sprite.create(s_extensions_buttonHighlighted);

        var titleButton = cc.LabelTTF.create(title, "Marker Felt", 30);

        titleButton.setColor(cc.c3b(159, 168, 176));

        var button = cc.ControlButton.create(titleButton, backgroundButton);
        button.setBackgroundSpriteForState(backgroundHighlightedButton, cc.CONTROL_STATE_HIGHLIGHTED);
        button.setTitleColorForState(cc.WHITE, cc.CONTROL_STATE_HIGHLIGHTED);

從上面的code中我們看到

ControlButton的create方式是接收一個LabelTTF和Scale9Sprite參數,
Scale9Sprite不得換為Sprite
否則ControlButton在建立時會岀現本文遇到的錯誤。

沒有留言 :

張貼留言