如何让CheckBox设setBright为false之后,点击还能显示被选图片

在cocostudio中,给CheckBox附了4张图,一张普通、一张点击、一张禁止, 还有一张是被选的标识图,未被选择的标志为空。

我发现,即使给CheckBox设setTouchEnabled为true,只要给它设了setBright为false之后,标识图都不会显示。

我想让他即使处于setBright为false,也能显示标识图。

显示标识图应该是跟setSelectedState有关系吧。我看代码是,当为true的时候,_frontCrossRenderer->setVisible(_isSelected);应该就是把标识图显示出来。

但实际上我把全部的CheckBox的setSelectedState设为true,只要有CheckBox的setBright为false,标识图都不会显示。

所以求解,如和让CheckBox设setBright为false之后,点击还能显示标识图片?

最近也遇到和你一样的问题需求,网上都搜不到,只好自己研究代码,现来回复,不知道你是怎么解决的,我是这样子搞:
setBright(false)要放在setSelected(true)后面,不然就会像你说的那样_frontCrossRenderer->setVisible(false);
另外我的是3.5引擎,有些地方不同,加了这个判断_frontCrossDisabledFileName.empty(),所以frontCrossDisabled的资源也要设,最好和frontCross的一样,详见下面cocos源码

void CheckBox::onPressStateChangedToDisabled()
{
if (_backGroundDisabledFileName.empty() || _frontCrossDisabledFileName.empty())
{
_backGroundBoxRenderer->setGLProgramState(this->getGrayGLProgramState());
_frontCrossRenderer->setGLProgramState(this->getGrayGLProgramState());
}
else
{
_backGroundBoxRenderer->setVisible(false);
_backGroundBoxDisabledRenderer->setVisible(true);

}
...

}