文件播放卡、轉(zhuǎn)場不流暢、軟件容易崩潰……出現(xiàn)這些問題,主要是因?yàn)榧尤胩嘞碾娔X性能的物體,如大圖、SVG、Flash。
首先說圖片。
Focusky(下面簡稱為“FS軟件”)在呈現(xiàn)一個幀的時候,會對幀內(nèi)的所有物體進(jìn)行渲染呈現(xiàn)出來。假如這個幀里面有10張圖片,每張圖片1M,那么轉(zhuǎn)場切換到這一幀的時候,軟件就要去加載這10張圖片。大圖片很占據(jù)內(nèi)存,而且每一張圖片去加載都需要時間。這時候,因?yàn)闀r間跟內(nèi)存一起增加,所以看到的就是軟件轉(zhuǎn)場過程中卡頓。
再切換到另外一個幀,而這個幀內(nèi)正好在圖片幀內(nèi),那么轉(zhuǎn)場的過程中,軟件開始執(zhí)行渲染工作,圖片幀內(nèi)的10張圖片開始放大,這時候放大的圖片會占更多的電腦內(nèi)存。
另外,還有為圖片增加樣式的功能。這個功能是用濾鏡來渲染圖片格式,而濾鏡在Flash里面也是一個相當(dāng)吃內(nèi)存的東西。有些用戶明明添加的是優(yōu)化過的圖片,但軟件運(yùn)行時卻相當(dāng)卡頓,有可能就是圖片格式濾鏡添加過多。
所以不建議添加高清大圖,濾鏡功能也不要去濫用。軟件提供了對圖片的優(yōu)化及裁剪功能。當(dāng)然,如果你的電腦性能足夠好,而且每一個幀內(nèi)添加的高清大圖只有一兩張,這對流暢度的影響很小。
然后說說SVG。
SVG因?yàn)闊o論放大多少倍都相當(dāng)清晰的功能深受大家喜歡,所以有不少人喜歡添加SVG。但是相比圖片,SVG吃掉的內(nèi)存一點(diǎn)也不遜色,甚至更多。特別是很復(fù)雜的SVG,它本身就相當(dāng)大,有的達(dá)幾百kb,甚至過M。而當(dāng)SVG放大時,它會成倍地去消耗內(nèi)存。另外由于SVG是由線條組成的,它每一次放大都會調(diào)用大量的CPU去運(yùn)算。如果連續(xù)去渲染的話,導(dǎo)致軟件崩潰基本上是板上釘釘?shù)摹?br />
所以,如果要使用SVG,請盡量使用比較小的SVG。如果你的軟件在放大過程中崩潰,不妨檢查一下是否SVG太大了。
最后,是SWF。
SWF是一個動畫,有大有小,而且版本號也不一樣。雖然as3.0出來十年了,但仍舊可以遇到用as2.0,甚至1.0寫出來的SWF動畫。這些動畫中有一些布局相當(dāng)調(diào)皮,所以加到FS之后,你會發(fā)現(xiàn)動畫跟邊界相差甚遠(yuǎn)。
跟圖片、SVG一樣,如果SWF太大,同樣也會很占內(nèi)存,而且SWF內(nèi)部的動畫需要去渲染,也是比較吃CPU的。