【声明】UI关于本次更新(2.2.2和3.0beta版本)的BUG问题

大家好,我是CocoStudio的开发者一枚。

关于本次升级cocos2dx版本导致的几个问题,由于本次改动较多,测试不足,有遗漏的bug未及时测试到,为此深表歉意。

下面我来说一下本次更新的注意事项,被坑的同学一定要看一下。

首先,几个大问题已经修复,大家可以在Cocos2d-x官网重新下载2.2.2和3.0版本的包,我们已将修复的问题更新到线上的版本包中,此版本修复了以下几个问题:

  1. ScrollView, PageView, ListView移除后再添加,自动滚动等效果消失的问题。

  2. Layout锚点无法设置问题。

  3. Widget::removeAllChildren()无法删除干净子节点的问题。

还有2个小问题需要大家手动修复,方法很简单。

问题1:
Button控件显示不正常问题(设置尺寸后显示不正常,或一切显示不正常问题):

解决方法:

请将Button.cpp文件中,两个函数替换成以下实现(onPressStateChangedToNormal和onPressStateChangedToPressed):

void Button::onPressStateChangedToNormal()
{
_buttonNormalRenderer->setVisible(true);
_buttonClickedRenderer->setVisible(false);
_buttonDisableRenderer->setVisible(false);
if (_pressedTextureLoaded)
{
if (_pressedActionEnabled)
{
_buttonNormalRenderer->stopAllActions();
_buttonClickedRenderer->stopAllActions();
CCAction *zoomAction = CCScaleTo::create(0.05f, _normalTextureScaleXInSize, _normalTextureScaleYInSize);
_buttonNormalRenderer->runAction(zoomAction);
_buttonClickedRenderer->setScale(_pressedTextureScaleXInSize, _pressedTextureScaleYInSize);
}
}
else
{
_buttonNormalRenderer->stopAllActions();
_buttonNormalRenderer->setScale(_normalTextureScaleXInSize, _normalTextureScaleYInSize);
}
}

void Button::onPressStateChangedToPressed()
{
if (_pressedTextureLoaded)
{
_buttonNormalRenderer->setVisible(false);
_buttonClickedRenderer->setVisible(true);
_buttonDisableRenderer->setVisible(false);
if (_pressedActionEnabled)
{
_buttonNormalRenderer->stopAllActions();
_buttonClickedRenderer->stopAllActions();
CCAction *zoomAction = CCScaleTo::create(0.05f, _pressedTextureScaleXInSize + 0.1f, _pressedTextureScaleYInSize + 0.1f);
_buttonClickedRenderer->runAction(zoomAction);
_buttonNormalRenderer->setScale(_pressedTextureScaleXInSize + 0.1f, _pressedTextureScaleYInSize + 0.1f);
}
}
else
{
_buttonNormalRenderer->setVisible(true);
_buttonClickedRenderer->setVisible(true);
_buttonDisableRenderer->setVisible(false);
_buttonNormalRenderer->stopAllActions();
_buttonNormalRenderer->setScale(_normalTextureScaleXInSize + 0.1f, _normalTextureScaleYInSize + 0.1f);
}
}

问题2:
替换库和编辑器后,Label显示不全问题:

解决方法:

请大家使用CocoStudio1.2.0.1版本,可避免label的问题。

请大家按照上述方式修改,也可以下载原文件直接覆盖替换。

对大家造成的不便再次致歉。

qq 271788548 如有问题可以随时找我

原文件下载附件:

难道说我就这样抢了沙发?

难道说我就这样抢了板凳?

当然我就这样抢了地板

楼主,确定官网上的已经是修复过了的么?还有,为什么要留两个bug非得手动修改?

你猜 :882:

您好,官网上的版本是修复了的 请下载更新,需要手动改的bug原因关系到版本发布打包的一些问题 而且较易改 所以就需要麻烦大家手动改一下

Label问题已查明,请按照http://www.cocoachina.com/bbs/read.php?tid=179772暂时修改

附遗漏的button.cpp

LZ 您好!
您说的这个问题,现在到 http://www.cocos2d-x.org 网站下载最新版本的cocos2d-x v3.0 beta。就可以解决,不需要在手动修改吧!

Mark Mark:2::2:

2.2.0升级到2.2.2后,更改UI的函数和类名后,是不是可以直接用了?

我现在是有的界面逻辑上出现各种各样的问题·····

您好 线上的版本已经修复了描述的3个问题, button显示异常 和文本框的问题需要手动修改 修改方法已经在帖子里描述过了

您好,请按照帖子描述,下载一次最新的版本,然后按照我介绍的方法修改一下代码

这。。。。能专业点么 毁三观的修复方式:手动!

红底黑字看起来太累眼。

发现是用了相对布局导致的程序设置坐标乱了的问题
请问相对布局是个什么原理,底层是怎么实现的

使用了相对布局就不需要设置坐标了 如果误操作已经设置过坐标 就调用layout->requestDoLayout强制刷新一下布局

插眼 插眼 插眼 插眼 插眼

官网上的是1月7号的,更新了吗?

为什么要专门留两个bug呢?

1、提高了我的动手能力,提升了自己。
2、让我觉得,哇!我也参与引擎开发了!想想还有些小激动呢!
3、如果别的用户下载了CocoStudio,而他们从来不上本论坛,遇到了这两个bug后是不是要到群里求助,是不是要来到这里,是不是要发帖询问?是不是要折腾一下?不仅迅速增强了自己解决问题和抵抗挫折的能力,也间接提升了论坛的访问量,提高了人气,增强了内需,推动了GDP。

如此利国利民的举动,开发者的良苦用心你不懂啊!