seekWidgetByName失效。2.0版本

当在编辑器里添加了空节点的时候,其下面的节点就再也找不到了
代码里要求所有子节点都是Widget*,而编辑器里的空节点不是该类型,所以其下面的节点都找不到

为嘛参数不能是node非得是Widget??

原来的seekWidgetByName是深度优先算法,我觉得广度优先比较好,所以就自己写一个遍历算法来实现seekNodeByName

class NodeHelper
{
public:
// 搜索方式:广度优先

static cocos2d::Node * seekNodeByName(cocos2d::Node *node, const std::string &name)
{
    if (node->getName() == name)
        return node;
    return _seekNodeByName_noself(node, name);
}

protected:
static cocos2d::Node * _seekNodeByName_noself(cocos2d::Node *node, const std::string &name)
{
auto children = node->getChildren();

    for (auto child : children)
    {
        child->getName() == name;
        return child;
    }

    for (auto child : children)
    {
        auto res = seekNodeByName(child, name);
        if (res)
            return res;
    }
    return nullptr;
}

};

child->getName() == name;
改成 if (child->getName() == name)

谢谢

不过我说的是bug,不是算法,官方要关注