错误总结3

今天遇到一个问题,游戏的邮件系统,有两个体验非常不好的地方。

1,第一种解决方案:打开邮件详情,会看到上次残留的数据,然后刷新成新的。

2,第二种解决方案:关闭邮件详情界面,回到邮件列表,会闪一下空白板子,然后刷新出邮件列表。


第一个问题:

这个问题很好解决,因为所有的邮件公用,一个详情的面板。

1,每次关闭板子的时候。清空组件里面填充的内容

2,默认组件是隐藏的,收到内容再显示出来,填充数据


第二个问题:

为什么会闪一下。一般滚动层,没有优化的,就是收到数据之后,清空然后重新添加。

我以为闪一下是因为,清空上次残留。添加新的导致的。不得不说如果心里认定了一件事,基本上想找到根本原因很难了。

事实证明我是错得:

1,清空操作,都是在收到新的数据之后,添加新的组件之前,才会做的操作,清空完后立马执行添加组件。

2,我们之所以,能看到屏幕的图片,是引擎每帧都在 draw , 间隔时间很短,人眼睛分辨不出来,就以为这东西是一直存在的。大部分游戏是30帧,就是一秒刷新30次,1000/30 = 33毫秒刷新一次。

3,draw 方法是根据,当前的节点数进行绘制的。也就是说,在一个的间隔内,你的逻辑 添加100个节点,然后又删除100个节点,在下次执行draw方法的时候,还是什么都不会绘制。 而1的方法,是在一个帧内的,肯定不会出现闪一下空白,然后又刷出来的表现样式。后来发现因为把 邮件列表scroll 隐藏的原因。

4,如果前端显示,看到闪一下。原因就是:像服务请求数据的时候就切换了界面,而不是收到协议之后才切换的界面。导致这是两帧里面的逻辑,所以会闪一下,用户体验非常不好。正确做法:都要收到服务器协议之后,再去切换界面。


说一下卡顿的两种情况?

1,理论人眼有一个0.1秒的视觉延迟,所以通常每秒刷新10次以上就可以了。但实际情况是每秒刷新24次以上时人眼才会分辨不出来,就可以看到连续的画面了。

2,游戏的帧数一般都是经过处理的,比如有两帧,每帧33毫秒,第一帧执行了60毫秒(肯能是本帧内处理的逻辑太多),那下一帧可能只有3毫秒,就会出现掉帧,造成卡顿的感觉。

3,如果一帧内处理的逻辑太多,也会造成卡顿,原因同上。这时候最简单的的改法就是。延迟执行一部分逻辑。(延迟执行可利用cocos提供的动作回调的功能实现)



错误总结4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值