之前说到了一个效率问题还没解决。
这个问题是这样的:
每个数据,需要一个节点来显示。如果数据项很多,比如几十几百个吧。那就需要几十几百个node,效率上就会很有问题。
仔细看我们那个gallery,一屏只能显示5个,其他的就被自己前面的node挡住了。我们给这5个节点编号1~5,当滚动的时候,当第六个节点完全出现的时候,第一个节点已经到后面去了,不可见了。马上要显示第八个节点了,我们完全可以把看不见的第一个节点,写上第八个节点的数据,放到第八的位置,如此往复。也就是说我们同时能看见的节点,不会超过7个,用这7个节点填充不同数据反复利用的方法,就可以解决这个问题。
总结:
1、需要的节点数量 = 初始化可见节点数 + 1 。 (这是理论上的,推荐+2,效果更平滑)
2、节点反复利用,填充不同数据
但是我在具体实现这个问题的时候,并没有采取7个节点的做法,因为按照之前的45度分布,我一共就8个节点。多一个少一个貌似差别不是很大,我直接偷懒把这个节点忽略了。然后我就只是刷新了他的数据,没有控制节点了。
PS:来源于 androID的ListVIEw相关知识
总结以上是内存溢出为你收集整理的cocos2dx 实现gallery (四)全部内容,希望文章能够帮你解决cocos2dx 实现gallery (四)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)