在 Cocos Creator 中优雅且高效地管理弹窗

我是觉得不用弄成队列的形式,一般都是想弹的时候调用一下show:joy:我好像没遇到过需要弄成队列的需求

:+1: 实用

队列其实更多来说是一种容错机制~

有多个弹窗Ui时,都有半透明黑色bg, 这个时候都叠在一起界面就黑乎乎一片,,

思维导图做的太棒了:clap:

感谢大佬分享

感谢大佬分享

写的很棒,但是有个诡异的问题,如果弹窗里有Slider组件,在init或者updateDisplay里修改slider的progress的话就会导致slider的bar消失不见,如果在init/updateDisplay里延迟一帧修改或者把init/updateDisplay放到show方法的最上面也行,或者去掉tween动画也可以,怀疑是tween动画导致的,动画开始前如果把节点的scale设为非0也正常。
https://gitee.com/ifaswind/eazax-cases你的这个工程也一样可以复现问题。
#####原来的 PopupBase.ts


#####改成这样slider就可以正常显示

引擎版本是2.4.3,百思不得其解啊。另外这个init和updateDisplay功能一样感觉有点多余。

大佬,喝茶。

MARK.

肯定会有大量需要多级弹窗的

mark.

mark。

我正在遇到的问题是
服务器下发 切换场景+弹窗
则可能这个弹窗 在当前场景弹出 马上就 切换场景, 导致看不到弹窗或者看不全弹窗
有解吗?

真不错,先打卡收藏!

这个问题我暂时还没有找到原因,但是在 onEnable 中修改 progress 是没问题的~

其实是分别用于数据初始化UI 初始化啦,我个人偏向于把逻辑分得细一点~

这个你可能需要将弹窗生成在一个常驻节点上,这样才能保证切场景弹窗还在~

现在只能一个一个的弹出,实际情况需要多级页面弹出。

好文。可以提提优先级队列的事情。实际情况下,弹窗是有优先级的,存在“插队”的可能。

请教一下,我想实现点击背景遮罩时关闭弹窗,且所有弹窗都有该功能,那这个点击事件是应该注册在PopupBase.ts中吧,那应该是放在哪个时间节点呢?