第一个箭头为onLoad 第二个箭头为 第一次lateUpdate ,第三个箭头为第二次lateUpate了(这次才生效)
我认为这是你场景中自己对 maskView 进行了动态调整导致的两次 lateUpdate 数据不一致。
理由是 lateUpdate 本来就会在 widget 当帧生效后才触发。所以你不论有没有调用 updateAlignment,这里的结果都应该是一样的。
也就是说这里没有引擎层的问题,也没有 updateAlignment 的问题。问题在于你两帧之间动态修改了 maskView 或者它的父物体的高度。
我搞个简单点的测试下
那是因为节点的尺寸在场景里保存的就是 widget 对齐后的,所以你再对齐多少次也还是一样的。
就是说要在场景脚本中对齐是有效?
嗯 asdf
我一个子node的绑定脚本 要根据正确的size 来写逻辑,这怎么搞啊。。 第一次onLoad肯定不行。。
在你要执行逻辑之前,调用 updateAlignment
比如:
function runLogic () {
var height = this.node.height;
// ...
}
改成
function runLogic () {
this.getComponent(cc.Widget).updateAlignment();
var height = this.node.height;
// ...
}
在子node脚本
中获取的高度不是正确的啊。。难道逻辑全要写在scene脚本,在传过去。。。。。。
不管要获取谁的高度,你所谓根据正确 size 来写逻辑,这个逻辑在哪就在哪里调用 updateAlignment()
重点在调用时机,无所谓在哪调用,也无所谓要调用哪个 widget
比如我在onLoad 对齐 start 也是对齐之后执行的么
不懂你在说什么………… 能给个详细点的流程吗
我在瞅瞅11



