【已解决】cocos2dx 3.1 UIText setFontSize enableoutline 异常

cocos2dx 3.1 版本 cocostudio 1.5 使用ui中使用 UIText 布局,
使用setFontSize或enableoutline后,都出现过CCSprite: Batched sprites should use the same texture as the batchnode

补充:该问题非必现

代码:
–widget 为从json中获取到的UIText对象
tolua.cast(widget, "UIText”)
local label = widget:getVirtualRenderer()
label = tolua.cast(label, “cc.Label”)
label:enableOutline(ccc4(0,0,0,255),1)

–widget 为从json中获取到的UIText对象
tolua.cast(widget, "UIText”)
widget:setFontSize(32)

截图中为setFontSize情况

我无法重现楼主的问题哦。我觉得楼主其它地方误用的可能性比较大,batch node需要它的所有children共用同一张纹理。

目前代码中都没有显式的用到batch node,唯一可能是为了解决Label::createWithTTF 不显示ttf文件中缺少文字 问题( http://www.cocoachina.com/bbs/read.php?tid=214353&page=e&#a)
将使用fontforge将2个ttf文件合并成一个

没有人碰到这个问题么?

补充:setFontSize之前还设置fontname
widget:setFontName(“fonts/FZYHJW.ttf”)
widget:setColor(ccc3(0,0,0))
widget:setFontSize(32)

已经解决,将label相关代码 升级到3.2就可以了

3.1:
if (_reusedLetter == nullptr)
{
_reusedLetter = Sprite::createWithTexture(_fontAtlas->getTexture(0));
_reusedLetter->setOpacityModifyRGB(_isOpacityModifyRGB);
_reusedLetter->retain();
_reusedLetter->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT);
_reusedLetter->setBatchNode(this);
}
else
{
_reusedLetter->setTexture(_fontAtlas->getTexture(0));
}

3.2:

if (_reusedLetter == nullptr)
{
    _reusedLetter = Sprite::create();
    _reusedLetter->setOpacityModifyRGB(_isOpacityModifyRGB);            
    _reusedLetter->retain();
    _reusedLetter->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT);
}
_reusedLetter->setBatchNode(this);