想看看大佬们怎么优雅地写弹框管理器?

引言

优雅的弹框管理器的实现思路。

最近 有小伙伴私信 我,提到有个弹框 的需求,想知道大佬们 怎么写得优雅

其实弹框管理器 的实现思路大同小异 ,也就是说,只要你懂了,你也是大佬

本文重点 介绍一下弹框管理器的实现思路 ,由于笔者没有遭住 广东断崖式降温,本文没有源码,请大家多多包涵。

我们先来分析一下小伙伴的需求

1.弹框需求

经过笔者的分析 ,小伙伴的需求看上去还比较简单,我们一起来看下有什么:

1.类似展示排行榜的弹框。

2.封装好,里面的内容可以自定义。

3.实现组件的弹出和关闭。

4.优雅。

那优雅的弹框管理器应该具备哪些功能呢?

2.优雅的弹框管理器

经过对小伙伴的需求分析 以及笔者的思考 ,优雅的弹框管理器可能具备以下功能:

1.模板化和模块化,即相同的核心内容封装在基类,自定义内容分模块实现。

2.缓存策略,即需要针对不同的弹框(只弹一次/频繁弹出)实行不同的缓存策略。

3.弹框队列,弹框在游戏中使用频繁且场景,避免弹框之间的冲突,我们需要通过队列管理。

4.优先级,用队列管理需要考虑优先级问题,让重要弹框优先弹出。

5.弹框资源管理,管理资源的加载与释放。

那我们应该怎么实现这些功能呢?

3.弹框流程

不着急 ,我们先来捋一下 弹框界面的开发以及弹框管理器使用的流程

  • 资源准备阶段
  • 弹框显示阶段
  • 弹框关闭阶段
  • 基类

下面一起来看看细节

4.具体细节

1.基类

基类 主要把通用 的一些内容整理 到一起,形成模板模块,主要有以下内容:

1.弹框动画,弹框一般都会带有动画,才不会显得突兀,可以设定一种样式、多种样式随机、多种样式选择。

2.显示流程,定义了显示的一个周期,包括初始化、数据填充、显示前的回调、播放动画、显示、显示后的回调。

3.关闭流程,定义了关闭的一个周期,包括关闭前的回调、播放动画、隐藏、关闭后的回调、通知管理器回收。

4.其他内容,是否是模态弹框(强制用户交互,不允许操作其他)等等。

2.弹框显示

细节如下:

1.队列,通过队列去管理弹框,解决游戏开发中弹框乱弹导致的失败或者顶掉。

2.队列持久化,可以将队列本地化存储,简易解决游戏开发中的一次性弹框在队列未弹就关闭游戏的情况,当然更稳妥可以存服务器。

3.弹框缓存,可以根据弹框的显示频繁程度去缓存弹框,减少资源的消耗。例如一次性弹框结束后直接回收,频繁弹框加入缓存不回收或者定时回收。

4.弹框资源 ,通过resources.load加载、instantiate实例化。

5.优先级,主要控制弹框显示顺序,即队列中的位置,可根据优先级进行排序插队。

2.弹框关闭

细节如下:

1.回收弹框,根据设定的缓存类型回收。

2.下一个弹框,关闭当前弹框后,需要检测队列是否还有弹框,弹出下一个。

3.挂起队列,如果有因为弹框立即显示导致关闭的弹框,加入挂起队列,弹框关闭后优先检测挂起队列并恢复弹框。

结语

以上就是笔者觉得 优雅的弹框管理器的实现思路,小伙伴们可吃瓜、可学习、可反驳、可私信交流

关于私信,欢迎 小伙伴们的私信 ,笔者都会认真地阅读和分析 ,并在力所能及 的范围内给大家进行解答 ,回答不一定能满意 ,但是笔者一定尽心尽力

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《贪吃蛇掌机经典》《填色之旅》《重力迷宫球》大家可以自行点击搜索体验。

实不相瞒,想要个在看 !请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

100个Cocos实例

8年主程手把手打造Cocos独立游戏开发框架

和8年游戏主程一起学习设计模式

从零开始开发贪吃蛇小游戏到上线系列

知识付费专栏

相关推荐
豐儀麟阁贵5 分钟前
8.5在方法中抛出异常
java·开发语言·前端·算法
zengyuhan50335 分钟前
Windows BLE 开发指南(Rust windows-rs)
前端·rust
醉方休38 分钟前
Webpack loader 的执行机制
前端·webpack·rust
前端老宋Running1 小时前
一次从“卡顿地狱”到“丝般顺滑”的 React 搜索优化实战
前端·react.js·掘金日报
隔壁的大叔1 小时前
如何自己构建一个Markdown增量渲染器
前端·javascript
用户4445543654261 小时前
Android的自定义View
前端
WILLF1 小时前
HTML iframe 标签
前端·javascript
枫,为落叶1 小时前
Axios使用教程(一)
前端
小章鱼学前端1 小时前
2025 年最新 Fabric.js 实战:一个完整可上线的图片选区标注组件(含全部源码).
前端·vue.js
ohyeah1 小时前
JavaScript 词法作用域、作用域链与闭包:从代码看机制
前端·javascript