文件播放卡、转场不流畅、软件容易崩溃……出现这些问题,主要是因为加入太多消耗电脑性能的物体,如大图、SVG、Flash。
首先说图片。
Focusky(下面简称为“FS软件”)在呈现一个帧的时候,会对帧内的所有物体进行渲染呈现出来。假如这个帧里面有10张图片,每张图片1M,那么转场切换到这一帧的时候,软件就要去加载这10张图片。大图片很占据内存,而且每一张图片去加载都需要时间。这时候,因为时间跟内存一起增加,所以看到的就是软件转场过程中卡顿。
再切换到另外一个帧,而这个帧内正好在图片帧内,那么转场的过程中,软件开始执行渲染工作,图片帧内的10张图片开始放大,这时候放大的图片会占更多的电脑内存。
另外,还有为图片增加样式的功能。这个功能是用滤镜来渲染图片格式,而滤镜在Flash里面也是一个相当吃内存的东西。有些用户明明添加的是优化过的图片,但软件运行时却相当卡顿,有可能就是图片格式滤镜添加过多。
所以不建议添加高清大图,滤镜功能也不要去滥用。软件提供了对图片的优化及裁剪功能。当然,如果你的电脑性能足够好,而且每一个帧内添加的高清大图只有一两张,这对流畅度的影响很小。
然后说说SVG。
SVG因为无论放大多少倍都相当清晰的功能深受大家喜欢,所以有不少人喜欢添加SVG。但是相比图片,SVG吃掉的内存一点也不逊色,甚至更多。特别是很复杂的SVG,它本身就相当大,有的达几百kb,甚至过M。而当SVG放大时,它会成倍地去消耗内存。另外由于SVG是由线条组成的,它每一次放大都会调用大量的CPU去运算。如果连续去渲染的话,导致软件崩溃基本上是板上钉钉的。
所以,如果要使用SVG,请尽量使用比较小的SVG。如果你的软件在放大过程中崩溃,不妨检查一下是否SVG太大了。
最后,是SWF。
SWF是一个动画,有大有小,而且版本号也不一样。虽然as3.0出来十年了,但仍旧可以遇到用as2.0,甚至1.0写出来的SWF动画。这些动画中有一些布局相当调皮,所以加到FS之后,你会发现动画跟边界相差甚远。
跟图片、SVG一样,如果SWF太大,同样也会很占内存,而且SWF内部的动画需要去渲染,也是比较吃CPU的。