cocos2d-x-3.2alpha0和cocos2d-x-3.0的代码变化真大,而且某些地方还引入了不少BUG,举个例子:
bool ScrollView::scrollChildrenHorizontal(float touchOffsetX, float touchOffestY)
{
bool scrollenabled;
float realOffset = touchOffsetX;
if (_bounceEnabled)
{
float icRightPos = _innerContainer->getRightBoundary();
if (icRightPos + touchOffsetX <= _bounceRightBoundary)
{
realOffset = _bounceRightBoundary - icRightPos;
scrollToRightEvent();
scrollenabled = false;
}
float icLeftPos = _innerContainer->getLeftBoundary();
if (icLeftPos + touchOffsetX >= _bounceLeftBoundary)
{
realOffset = _bounceLeftBoundary - icLeftPos;
scrollToLeftEvent();
scrollenabled = false;
}
}
else
{
float icRightPos = _innerContainer->getRightBoundary();
if (icRightPos + touchOffsetX <= _rightBoundary)
{
realOffset = _rightBoundary - icRightPos;
scrollToRightEvent();
scrollenabled = false;
}
float icLeftPos = _innerContainer->getLeftBoundary();
if (icLeftPos + touchOffsetX >= _leftBoundary)
{
realOffset = _leftBoundary - icLeftPos;
scrollToLeftEvent();
scrollenabled = false;
}
}
moveChildren(realOffset, 0.0f);
return scrollenabled;
}
```
看到问题了吗,第一句bool scrollenabled;没有初始化,最后返回的可能是一个未初始化的值。
再来一个:
bool ScrollView::scrollChildrenVertical(float touchOffsetX, float touchOffsetY)
{
float realOffset = touchOffsetY;
bool scrollEnabled = false;
if (_bounceEnabled)
{
float icBottomPos = _innerContainer->getBottomBoundary();
if (icBottomPos + touchOffsetY >= _bounceBottomBoundary)
{
realOffset = _bounceBottomBoundary - icBottomPos;
scrollToBottomEvent();
scrollEnabled = false;
}
float icTopPos = _innerContainer->getTopBoundary();
if (icTopPos + touchOffsetY <= _bounceTopBoundary)
{
realOffset = _bounceTopBoundary - icTopPos;
scrollToTopEvent();
scrollEnabled = false;
}
}
else
{
float icBottomPos = _innerContainer->getBottomBoundary();
if (icBottomPos + touchOffsetY >= _bottomBoundary)
{
realOffset = _bottomBoundary - icBottomPos;
scrollToBottomEvent();
scrollEnabled = false;
}
float icTopPos = _innerContainer->getTopBoundary();
if (icTopPos + touchOffsetY <= _topBoundary)
{
realOffset = _topBoundary - icTopPos;
scrollToTopEvent();
scrollEnabled = false;
}
}
moveChildren(0.0f, realOffset);
return scrollEnabled;
}
```
还是scrollEnabled ,我看不出哪里scrollEnabled 会为True,全部为false,那这个scrollEnabled 有什么意义呢。
今天真是不得不吐槽一下,这么多明显的代码问题,怎么能发布呢,你们把lua-tests里面关于UI控件的Demo都跑一遍,就知道问题所在了。
