1.4的编辑器做的ui动画,如果动画元素有一个非layer的父节点,那么这个元素的动画位置就会混乱
这几天查了一下原因如下:
3.0里面所有的子节点相对父节点的坐标都是相对左下角,而非锚点的位置,但是编辑器里面输出的坐标是相对锚点的坐标。
关于这个问题,之前有看到一个帖子说了一下。大概是修改了CCGUIReader里面创建ui控件时的坐标,但是动画那块没有修改,完全处于混乱状态,2.x版本的sdk没有细究,不知道是不是有同样的问题。
至于为什么把相对坐标固定到左下角而不是锚点位置,真心求解。
不过重点是这个问题要怎么改才比较好
UI动画一坨黑~~ 我将它重构了~~
当然包括这个bug:
####5.动画位置错误Bug
在正式版本中有一个Bug,设置位置时需要加上父节点的偏移位置,官方解决办法:(http://www.cocoachina.com/bbs/read.php?tid=199751),但是这个是没有解决动画位置错乱的,因此有如下改动:
ActionNode::initWithDictionary中
initActionNodeFromRoot(root);从最后一行拿到代码第二行
actionFrame->setPosition(Point(positionX, positionY));改为
if(this->getActionNode()->getParent())
{
actionFrame->setPosition(Point(positionX, positionY)+this->getActionNode()->getParent()->getAnchorPointInPoints());
}
else
{
actionFrame->setPosition(Point(positionX, positionY));
}
那种修改应该可以搞定,但是3.0这这样,把子节点相对坐标基于父节点左下角这种设定有问题,我正在尝试把他改成以锚点为基准点的设定,不知道不会会弄出问题,目前是点击位置出现混乱,正在改点击坐标的计算