TextBMFont::TextBMFont():
_labelBMFontRenderer(nullptr),
_fntFileName(""),
_stringValue(""),
_labelBMFontRendererAdaptDirty(true)//无法读取内存
{
}
TextBMFont::~TextBMFont()
{
_labelBMFontRenderer = nullptr;
}
TextBMFont* TextBMFont::create()
{
TextBMFont* widget = new (std::nothrow) TextBMFont();
if (widget && widget->init())
{
widget->autorelease();
return widget;
}
CC_SAFE_DELETE(widget);
return nullptr;
}
TextBMFont* TextBMFont::create(const std::string &text, const std::string &filename)
{
TextBMFont* widget = new (std::nothrow) TextBMFont();
if (widget && widget->init())
{
widget->setFntFile(filename);
widget->setString(text);
widget->autorelease();
return widget;
}
CC_SAFE_DELETE(widget);
return nullptr;
}
void TextBMFont::initRenderer()
{
if (_labelBMFontRenderer) _labelBMFontRenderer = nullptr;
_labelBMFontRenderer = cocos2d::Label::create();
addProtectedChild(_labelBMFontRenderer, LABELBMFONT_RENDERER_Z, -1);
}
void TextBMFont::setFntFile(const std::string& fileName)
{
if (fileName.empty())
{
return;
}
_fntFileName = fileName;
_labelBMFontRenderer->setBMFontFilePath(fileName);
updateContentSizeWithTextureSize(_labelBMFontRenderer->getContentSize());
_labelBMFontRendererAdaptDirty = true;
}
void TextBMFont::setString(const std::string& value)
{
if (value == _labelBMFontRenderer->getString())//这里提示无法读取内存
{
return;
}