主要用于按照名字来切换displayIndex来换装,基本可以说是刚需
在js_register_cocos2dx_dragonbones_Slot中添加
cls->defineFunction(“setDisplayByName”, _SE(js_cocos2dx_dragonbones_Slot_setDisplayByName));
static bool js_cocos2dx_dragonbones_Slot_setDisplayByName(se::State& s)
{
dragonBones::Slot* cobj = (dragonBones::Slot*)s.nativeThisObject();
SE_PRECONDITION2(cobj, false, "js_cocos2dx_dragonbones_Slot_setDisplayByName : Invalid Native Object");
const auto& args = s.args();
size_t argc = args.size();
CC_UNUSED bool ok = true;
if (argc == 1) {
std::string arg0;
ok &= seval_to_std_string(args[0], &arg0);
SE_PRECONDITION2(ok, false, "js_cocos2dx_dragonbones_Slot_setDisplayByName : Error processing arguments");
cobj->setDisplayByName(arg0);
return true;
}
SE_REPORT_ERROR("wrong number of arguments: %d, was expecting %d", (int)argc, 1);
return false;
}
SE_BIND_FUNC(js_cocos2dx_dragonbones_Slot_setDisplayByName)
在slot.cpp中添加
void Slot::setDisplayByName(std::string name) {
int num = 0;
for (std::vector<DisplayData*>::iterator it = _displayDatas.begin(); it != _displayDatas.end();it++) {
if (name == (*it)->name) {
setDisplayIndex(num);
}
num++;
}
}