Egret社区

关于cacheAsBitmap几点疑惑

2017-10-9 23:00
24520
50银子
最近在做性能优化,减少手机发热,所以考虑使用cacheAsBitmap来减少一些渲染数量,但是在使用的时候遇到了几点问题。
问题1:
egret直播的时候说九宫格图片。先是切开这张图片,然后在合成一个,但是实际测试的时候发现,九宫格变成了9个draw,我想知道这个情况合理吗?还是说有什么问题?(测试方法是让九宫格图片运动,显示的draw为9个,静止的时候是一个。如果这个九宫格是列表中node的一个图片,那么滑动列表显示的九宫格draw变为了9个)同时我把这个九宫格图片设置cacheAsBitmap,这样就显示为1个draw,我想知道这样用可以吗?或者是对性能有影响吗?
问题2:
有一些不经常更新的地方,在改变之前将节点(指图片或者是group等)的cacheAsBitmap设置成了false,然后在更新之后在将节点的cacheAsBitmap设置成true。这样使用可以吗?还有就是当设置成true的时候,缓存了这个位图,那么设置成false的时候,这个缓存的位图是否会自动销毁?
问题3:
创建了一个group,然后将一些图片按钮放入到group中,但是点击图片是有放大缩小的效果,这个时候我将group的cacheAsBitmap设置成true,这样是否合理或者是可行?我自己的推测是不可行,因为group中的图片节点的属性变了,那么group的缓存会重新绘制,但是在实践的过程中没有发现什么问题。所以很疑惑,不知道这么使用是否合理?
问题4:
我现在使用的引擎是3.2.6,我使用的是eui创建的项目,每一个皮肤作为一个界面,当我打开一个界面的时候,开始的时候draw会显示很多,但是等待几秒之后,draw就变成了0,我想问这是什么情况?是因为界面中任何节点都没有改变,所以canvas不会自动绘制吗?还是因为egret的皮肤里面默认设置了什么东西?求帮忙。

分享到 :
1 人收藏

20 个回复

倒序浏览
GreenDay  圆转纯熟 | 2017-10-9 23:05:45
还有个问题:cacheAsBitmap之后的缓存量是否需要考虑?
13500815917  圆转纯熟 | 2017-10-10 11:24:24
个人经验:设置cacheAsBitmap  = true时,显示对象最好不是频繁更改的(旋转,缩放,斜切等),显示隐藏对象无所谓吧
粗人  圆转纯熟 | 2017-10-10 11:27:20
滑动列表最好不要用九宫的
GreenDay  圆转纯熟 | 2017-10-10 13:06:28
13500815917 发表于 2017-10-10 11:24
个人经验:设置cacheAsBitmap  = true时,显示对象最好不是频繁更改的(旋转,缩放,斜切等),显示隐藏对 ...

我可以理解为,一个group设置了cache,这个时候这个group最好不要更改属性是吗?
GreenDay  圆转纯熟 | 2017-10-10 13:07:12
粗人 发表于 2017-10-10 11:27
滑动列表最好不要用九宫的

滑动列表的每个node的背景基本一致,但是大小不同,所以背景图采用的是九宫格。
GreenDay  圆转纯熟 | 2017-10-10 13:09:09
  有木有人能回答一下?
粗人  圆转纯熟 | 2017-10-10 14:20:09
GreenDay 发表于 2017-10-10 13:06
我可以理解为,一个group设置了cache,这个时候这个group最好不要更改属性是吗? ...

是的,不能有数据更新一集界面刷新的,cache的东西最好就是静态无更改的东西
粗人  圆转纯熟 | 2017-10-10 14:22:48
GreenDay 发表于 2017-10-10 13:07
滑动列表的每个node的背景基本一致,但是大小不同,所以背景图采用的是九宫格。 ...

cache的话就对单个列表项进行cache
GreenDay  圆转纯熟 | 2017-10-10 18:42:42
粗人 发表于 2017-10-10 14:22
cache的话就对单个列表项进行cache

但是单个列表中的数据,滑动是需要改的,那么对单个列表项做cache可行吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2016 Comsenz Inc.

返回顶部