0
Я делаю messagewindow. И я хочу контролировать каждое письмо.
Я запустил Sprite # setVisible для управления каждой буквой, но он не работает.
Этикетка # setVisible работает нормально.Cocos2d-x setVisible не работает
Вот мой код.
void MessageWindowLayer::setText(std::string& text) {
this->message = text;
Label* msgLabel = Label::createWithTTF(message, "fonts/JKG-L_3.ttf", 24);
msgLabel->setPosition(cocos2d::ccp(0, back->getContentSize().height));
msgLabel->setAnchorPoint(ccp(0, 1));
this->runAction(CallFunc::create([msgLabel]() {
int num = msgLabel->getStringLength() + msgLabel->getStringNumLines() - 1;
for (int i = 0; i < num; i++) {
Sprite* letter = msgLabel->getLetter(i);
if (nullptr != letter) {
letter->setVisible(false);
log("isVisible:%d", letter->isVisible()); // isVisible returns "0" but letters still show
//letter->runAction(
// Sequence::create(
// DelayTime::create(0.2f*i),
// //JumpBy::create(0.5f, Point::ZERO, 60, 1),
// Show::create(),
// NULL
// ));
}
}
}));
parentLayer->addChild(msgLabel);
}
спасибо.
EDIT: Я изменил версию кошки «3.8 финала» на «3.7.1», он стал работать. Итак, я открыл вопрос о github.
«getLetter» работает я думаю, потому что, когда я пытаюсь запустить действие «JumpBy», он работал – fullmetal248