为什么按钮需要点两次才显示画面?????

主场景中,有两个界面。
其中一个界面在屏幕外面
通过点击按钮设置active=true,然后设置postion为0,0来切换卡片。

display_tansuo(){
this.xx_beibao.active=false;
this.xx_jineng.active=false;
if(this.xx_tansuo.active==false){
this.xx_tansuo.setPosition(cc.v2(0,0));
this.xx_tansuo.active=true;
console.log(“进入判断”)
}else{
this.xx_tansuo.active=false;
}
}

点击按钮已经输出了“进入判断”
但是却没有显示卡片,需要再点击一次。。。才会显示,之后就一直正常,能隐藏能显示。。。

各位大佬,可能是什么问题。。。

你先试试在场景编辑上直接把你的tansuo节点设置在0,0位置,然后active是false.看看还需要两次不

好的,我看看

大佬,这样做就不需要了,但是为什么第二次的setposition才有作用呢?

刚才我没看了你这上面的代码,你这里是要等上面的节点隐藏掉了,才会执行下面的操作。所以要点两次。我给你的方法是我常用的手段而已。所以你把上面这段代码去掉还是可以一次执行的

可是这里本来就是隐藏的,也进入了这个条件了。

有没有小案例?我看不出你的问题所在,按照你给出的代码正常的话是会执行的,但是不知道什么原因你的tansuo节点又被隐藏起来了。

我导出来,大佬,稍等

cocosxiuxiangame - 副本.zip (877.8 KB)

大佬,发出来了,删图片有点慢,论坛有限制

看到了,你的是widget设置的原因,所以才会出现那样的问题。想要设置成和屏幕一样宽的话,据我的经验了解是对准父节点的那个位置来设它左右两边为0。不然weidget与setPositon就会发生奇怪的反应了。

原来如此,谢谢大佬:joy:太感谢了

那我发布的时候全部放到窗口内,设置active就行了

可以,解决了就行,我一般都是这样做的。

1赞