关于removeFromParent的BUG

问题是这样的:
版本2.2.2

把一个Widget控件removeFromParent然后再塞回去,就会丢失update事件

举个例子:
UIScrollView *s = UIScrollView::create();
this->addChild(s);

s->removeFromParent();
this->addChild(s);

UIScrollView就悲剧了,惯性和回弹都消失了(update得不到调用)
如果没有removeFromParent 就没事

怀疑是schedule的pause和resume出了问题

这个问题请版主帮忙看看吧

大概找到问题了
重新addChild的注册schedule的事件漏了(因为在CCNode的removeChild函数里会删除scheduler注册)
最后加两行
s->setUpdateEnabled(false);
s->setUpdateEnabled(true);
就可以了。

我在源码里做了修复,代码如下:
void Widget::onEnter()
{
updateSizeAndPosition();
CCNodeRGBA::onEnter();

//fix regist scheduler bug
setUpdateEnabled(false);
setUpdateEnabled(true);

}

请问版主是否有更好的方案,总觉得这么改有点hack的做法