问题描述,
p.addChild(p1);
p1.addChild(p2);
p2.addChild(p3);
p3->setTag(1);
p->getChildByTag(1);能获取到p3吗?如果不能该怎么做呢?
PS:中间的节点 不要设TAG。
这个函数从根节点 递归搜索所有子节点以获取tag子节点,可以搜索到,但是想返回这个结果我试了几种方式,都不能成功,甚至使用memcpy,倒是可以获取到正确的节点,但是使用的时候就会爆内存。。。我泪奔啊。。。哪位C++大神帮忙整段可用的或者修改下代码啊帮我?
void Test::getChildByTagFromAllNode(CCNode parent,int tag,CCNode result)
{
if(result != NULL)
{
return;
}
if(parent->getChildren())
{
if(parent->getChildren()->count() > 0)
{
CCObject child;
CCARRAY_FOREACH(parent->getChildren(), child)
{
CCNode pChild = (CCNode*) child;
if (pChild->getTag() == tag)
{
result = (CCNode*) child;
CCLog(“get========================%d”,tag);
return;
}
else
{
getChildByTagFromAllNode((CCNode*) child,tag,result);
}
}
}
else
{
if(parent->getTag() == tag)
{
CCLog(“get========================,%d”,tag);
result = parent;
return;
}
}
}
else
{
return;
}
}