首先介绍一下我在用的两个图片打包工具StarlingSwf和TexturepPacker,前者会导出需要用到的一些单个的图片,并列出*.byte的一个字典文件,接着也是通过这个软件把合成的的png大图转成ATF格式的图片,后者把导出的小图合并成大图,并为每一个大图添加配置表。
在使用ATF的过程中遇到两个问题:
- 一个就是在某些时候会遇到图片产生黑边的问题。
- 第二个就是在渲染一些具有较多透明度图片的时候整体显示色彩变化的问题。
然后就通过其他渠道去解决这个问题,用图片,到动画,再到游戏,检查了一遍,也比对了好多资源的效果,最后在 starling打包成的字典(*.byte)中找到了这个问题的答案。我针对同一个图片进行了两种实验,方法就是在Adobe Flash CC中用不同的方法来处理这个动画,分别用同一个雪花的小图片做成一个下雪的效果动画,不同处在于,一个把所有单个的图片都当成影片剪辑去处理,而一个把所有的单个图片当作图形去处理,如图jt2和jt3。jt2是正确的,jt3是错误的方式。
jt2:
jt3:
通过比对两种方式导出的字典(*.byte)中的数据得到了我需要的答案,如图:
jt4:
jt5:
jt5的那个数据是渲染有问题的方式导出的数据,通过比对可以看到,两个模式分别是分别在一张图片和许多张图片同时在进行渲染,虽然用了starling之后这个渲染的工作是交给GPU来完成的,但是在同一时间渲染许多张图片的效率可想而知,尤其是在性能不是很好的机器上,这个渲染的效果肯定没有只渲染一张图片,然后用这张图片去进行位置计算来的快,渲染和计算,我更倾向于让计算的步骤多一点。
最后,这两个问题都已经都已经解决了,在文章的最后想说一句,用ATF的图片真的能节省很多的资源,但是对动画的制作要求比较多,如果可以接受对动画的要求,对于降低GPU的运算率和降低包的大小的效果是绝对的。