求助,预制体获取的position始终是0

使用的是scrollview组件,为了自动排序我在它的content添加了layout属性,
在content节点下添加的预制体,获取的content下的子节点的Position全是0,0。
请问我如何获取得到父节点下的预制体子节点的相对位置呢?
另外我想在子节点与子节点画连接线除了Graphics,还有其他方便点的方式么?

我也遇过这个问题,

就是在 scrollview.content.addChild( node ); 之后
打印出 node.getPosition(){ x:0, y:0 }

估计是Layout组件没有立刻排列并改变大小,

我后来是加了一个

setTimeout( () => 
{
   cc.log( 'node.pos = ' + JSON.stringify( node.getPosition() ) );
}, 0 );

这样才读得到, 后面带的时间你自已评估下

另外,
我有查过layout的api,不像widget有updateAlignment() 可以使用,
不晓得有没有大神有方法解决?

这个问题我很早以前反馈过,自己调整使用方法吧。

Layout里面添加节点不会立即刷新,需要强制用代码手动立即刷新下,在获取位置就可以了,不然需要等到下一帧

this.ndLayout.getComponent(cc.Layout)._updateLayout();

加上 _updateLayout()

1赞

_updateLayout()

1赞

不愧是老司机,太赞了:heart_eyes:

麻烦 @Knox 将 _updateLayout 暴露出来并且写到 API 文档中

1赞

谢谢~

这个好 :heart_eyes:

请问我在content的下加入Graphics属性 画出children1 - children2的连线,但是由于children上带图片的所以线被图片若遮盖了,如何能让content下的线能显示出来呢
-view
-content(添加了Graphics)
-children1
-children2
-children3

不要乱入,另外发帖