使用相对布局后,移动了节点,但doLayout 却让节点位置还原了的问题

Layout 使用的是相对布局,里面添加了一个节点,做了MOVETO动画。但后来不知道为什么会跑到

void Layout::doLayout()
这个函数里面,把节点位置给还原了,真心吐血。。。求高手解决。

相对布局里面,执行MOVETO动画不更新POS?

MoveTo 调用了这个函数来更新节点位置,并将POS更新到_position 这个变量里面了
但Layout::doLayout() 使用的POS却来自变量:

                    Margin relativeWidgetMargin;
                    Margin mg = layoutParameter->getMargin();

void Widget::setPosition(const Point &pos)
{
CCLOG(“Widget::setPosition, tag:=%d, {%f, %f}”, getTag(), pos.x, pos.y);

if (_running)
{
    Widget* widgetParent = getWidgetParent();
    if (widgetParent)
    {
        Size pSize = widgetParent->getSize();
        if (pSize.width <= 0.0f || pSize.height <= 0.0f)
        {
            _positionPercent = Point::ZERO;
        }
        else
        {
            _positionPercent = Point(pos.x / pSize.width, pos.y / pSize.height);
        }
    }
}
Node::setPosition(pos);

}

所以,这BUG产生了。FUCK!

版主快来看看,尽快修复啊~