-
Creator 版本: 3.0
-
目标平台:Chrome
-
重现方式:
遇到个widget 的BUG 特意记录一下 希望同遇的同伴可以交流一下
1 场景元素使用widget布局
2 使用tween移动
3 在同一个parentNode下添加一个Node 该元素复位了
4 删除widget后恢复正常
5 就好像新增Node触发了resizeWindow一样 但是设置成once也没用
感觉你这设计就有问题吧?widget应该是表示一个相对静止的东西,但是这玩意又会移动
tween移动的东西,不要用widget吧。
你可以给你tween移动的东西加一个容器,给这个容器加widget。
1 现在在外面包一个node 用widget可以 外面的node定位 然后里面tween缓动可以
2 这个方案虽然可行 但是2.X时代完全可以widget定位然后tween缓动
否则always once onwindowResize有何用
3 而且 添加节点触发widget重新定位 这个也算正常? 看起来应该是新增node异常触发了widget定位有关
widget AlignMode 有once 和 onwindowResize 和always 2.x时代 使用once基本就是初始化调用一次 之后移动什么的都无所谓
没这么用过,感觉此处应该艾特下引擎组大佬
这个不是bug, 建议你参考下 widget组建的updateAlignment方法。
建议你在获取该节点坐标之前最好调用下updateAlignment 再去获取该节点坐标
没记错的话updateAlignment是立即调用widget的约束信息布局吧,通俗的说就是刷新
我的问题是我在node下添加一个字节点,这个node下的所以childnode都updatealignment了一遍
我的目的不是为了刷新,而是addchild的时候诡异的刷新了
你发个问题的demo吧。看下你的具体问题
我也遇到了,也很奇怪。widget节点,点击btn。用tween移动节点,移动完毕后节点active设为false,然后此时在点击btn,把节点active设为true。此时节点居然触发了一次对齐操作,位置又回去了。widget模式是window_res那个属性。奥对了,我的是2.4.5
我没记错好像widget的updateAlignment方法会重置所有的widget吧,我个人觉得是挺坑的。但是2.x版本不会说新加的widget会导致其他widget复位,不知道是不是因为3.0官方直接套用了updateAlignment方法的缘故?
同样,我项目切2.x版本了,本来想用ccc3做的,写的闹腾人,莫名其妙的label不刷新,位置错乱
好像是这个 pr 修复的,你可以更新看看能不能解决,https://github.com/cocos-creator/engine/pull/8347
3.0.1 这个问题是有得到解决,如果不介意升级的话,但是还是请提前做个备份