1.组件初始化是在第一次update 之后 ,第二次udpate之前么?
2.
测试发现 widget 初始化是在第二帧率才初始化成功
@子龙山人 1111
Layout 和 widget 都是在 before_visit 之前生效的(Widget 在 layout 之前处理完布局)。你如果要在第一帧取到正确的 size,可以用 cc.director.on(cc.Director.EVENT_BEFORE_VISIT, your-callback); 来注册一个 before visit 事件。
引擎里面事件执行的顺序是: onLoad -> onEnable -> start -> update -> lateUpdate->before_visit(需要用 cc.director.on 来注册) -> after_visit(需要用 cc.director.on 来注册) -> after_draw (需要用 cc.director.on 来注册)
可以用 widget.updateAlignment() 来立刻强制更新一次布局。
在其它帖子复制来的
1赞
- 第一次 update 之前就初始化
- 谁说 widget 初始化后就立刻会对齐呢?如果要立刻拿到对齐结果,请调用 widget.updateAlignment()
那第一次初始化之后拿到的还是默认的size
谁说 widget 初始化后就会立刻对齐呢?(如果立刻对齐,你脚本里修改又了场景,那这一帧渲染时排版不就错了?)
那怎么在第一帧之前拿到正确是size啊。不是默认的,是对齐之后的
可以用 widget.updateAlignment() 来立刻强制更新一次布局。
执行 updateAlignment 后 size 就是对的了
updateAlignment()这个方法可以在任何时候被调用么? 为什么我不在onLoad方法里面调用的 在别的方法里面调用的没有生效对齐呢
任何时候都会生效,不过要升级到 1.4.2