摘要:Flash在網絡中的應用非常廣泛,在觀賞Flash的動畫效果的同時我們也應該關注Flash的龐大文件量。如何給Flash“瘦身”已經是很多Flash制作人員關心的話題。這里,我們討論了Flash的“肥胖”的原因,并針對這些進行相應的“瘦身計劃”,使我們的Flash作品能在網絡上“暢通無阻”。
關鍵詞:矢量圖;位圖;關鍵幀;流媒體
中圖分類號:TP37文獻標識碼:A文章編號:1009-3044(2008)34-1971-02
How to Slim Your Flash
PENG Xue-ping
(Nanjing College of Chemical Technology, Nanjing 210048, China)
Abstract: The Web application of Flash has became very popular, when we watching the effect of flash we should also attend the large content of it. More and more flash maker concern about how to slim it. Here we will discuss why the flash is so fat, and make some slim plan. So ours' works can run in the network freely.
Key words: Vectorgraph; Bitmap; Key Frame; Stream Media
1 引言
隨著電腦科技的發展,Flash的應用領域也不斷增加。賀卡、MTV、動畫短片、交互游戲、網站片頭、網絡廣告都有Flash的身影。如今,Flash應用最廣的領域是在網絡。
盡管Flash動畫中采用的是矢量作圖方式和流媒體播放技術,已經大大提升了其網上的下載速率。但是面對擁擠的網絡資源和體積龐大的動畫文件,速度仍然會成為影響動畫作品品質、性能的重要指標。因此,制作動畫文件時,在保證動畫質量的前提下,應該盡量優化作品,使其小巧精致,播放流暢。
如何優化,這是我們最關心的,下面我們針對幾個重要的方面來給Flash瘦身。
2 圖像對象的優化
Flash中的圖像分為內部的矢量圖形和外部導入的位圖。就文件量來說,矢量圖形遠遠小于位圖。位圖是使Flash肥胖的一個重要原因。但是,如果單使用Flash的矢量圖,很多效果我們是無法實現,所以位圖的導入無法避免。另外,如果無休止的使用矢量圖形而不進行優化也會增加Flash的文件量。
2.1 Flash 內部圖像對象優化
Flash中我們經常會使用到同樣的對象。或者對象是一個對象,但是大小、顏色方面有些改動。我們應該把這些對象轉換為組件(單個圖形轉換為圖形組件,動作可以轉換為影片剪輯組件);其一、轉換為組件以后可以減少我們的工作量,對同樣的對象我們只需要制作一次。轉換為組件,然后通過庫導入,再進行變形或屬性設置實現其他效果;其二、在Flash影片下載過程中,組件只會被裝載一次,后面再使用該組件,或者該組件有屬性變化,則不需要再行下載,這樣就可有減少文件的體積。如圖1所示。
2.2 外部導入位圖對象優化
真正使用Flash制作動畫,我們會發現很多效果在Flash中是無法實現。所以,我們需要其他的輔助軟件(如Photoshop)制作一些效果圖。但是,位圖的導入必定會增加Flash的文件量。我們在位圖導入中可以注意以下兩點:
2.2.1 不在Flash中對位圖進行變形操作
雖然Flash中可以進行變形操作,但是無論你將其變得多大還是多小,都不會改變原圖的體積大小。如原來圖片大小是800*600,文件量是200K,導入Flash中大小修改為550*400,但是整個Flash的文件量并不會減小。所以,對于導入 Flash 的圖片,應先在其他圖像處理軟件如 Photoshop 中調整好大小再進行導入,而不要直接導入后再用變形命令進行大小調整。
2.2.2 使用位圖轉換為矢量圖形
在Flash中,我們可以通過修改→轉換→位圖轉換為矢量圖。這樣操作能夠大大減少Flash的文件量。但是,同時也犧牲了位圖的圖像效果。如果我們希望得到復雜的圖形而不一定要求它的效果可以使用這種方法。尤其是對風景圖的轉換,在動畫里能夠和動畫對象和諧,達到更到的融合效果。如圖2所示。
3 幀的優化
除了圖像會增加Flash的文件量,幀也會增加。尤其是對Flash 文件大小要求很嚴格的時候,我們也要考慮對幀的優化。
3.1 盡量少用幀動畫
使用Flash制作動畫的形式可以有幀動畫、Tweening動畫和程序動畫。所謂幀動畫就是通過修改每個關鍵幀的內容來產生動畫效果。這與傳統的手工動畫一樣,對于一些復雜的動畫效果我們可以是使用幀動畫。但如果該幀動畫效果可以通過Tweening動畫(Flash自動生成動畫功能(Motion和Shape運動))來實現,則應該選擇后者。1) 后者制作簡單方便;2) 關鍵幀決定著文件量的大小,減少關鍵幀的數量即減少文件量。
3.2 減少關鍵幀的數量
與上述幀動畫不同,這里主要指的是減少不需要的關鍵幀。如我們的一個動作播放到50幀,最后我們希望這個對象靜止20幀,則需要選擇70幀→插入幀。而很多朋友會在70幀→插入關鍵幀。當然,動畫效果并無影響,但是這樣也就增加了文件的關鍵幀的數量導致文件量變大。
■
4 聲音的優化
雖然在動畫中加入音效,可以為動畫增添效果。但聲音文件通常都比較大,為了不影響下載速度,使用聲音文件時,最好挑選采樣頻率、聲音類型和聲音位數都比較適中的聲音。
4.1 選擇MP3格式的流聲音
一般情況下,使用22KHz(采樣頻率)、16-bit(聲音位數)、單聲道聲音就可以了。如果聲音文件較大,為了避免在下載過程中發生停格現象,還應選擇流聲音(StreamSounds)類型。而對于流聲音而言,壓縮方式則一般應選擇MP3格式,因為在相同質量下,MP3文件體積要小得多。
4.2 對聲音進行剪輯
很多朋友只希望得到某個范圍的音樂。當然,在Flash中我們可以控制音樂的播放范圍,但這樣并不能減少Flash文件量。我們可以事先在音頻制作軟件里,對聲音進行剪輯再導入至Flash中,這樣既得到想要的音樂也減少了Flash的文件量。
5 預裝載與文件分割相結合
有時我們無法減少Flash的文件量,但我們可以將Flash的下載狀態呈現給瀏覽者,這樣訪問者就會有耐心等下去而不會覺得浪費時間。
5.1 預裝載技術
如果Flash某一幀里有大量的數據,可以考慮用\"預裝載技術\"加以解決。所謂\"預裝載技術\",就是指在前面包含數據較少的幀,先將后面要裝載的部分內容,如部分組件先行裝入,這樣,當影片播放到后面時,只需要再裝入前面沒裝入的部分就行了。預裝載技術,通過數據分流,對提高影片播放的流暢性是很有用的。 采用\"預裝載技術\",要注意不能在前面將預裝載的內容顯示出來,因此,在原有基礎上,需要多建一個圖層,并將預先裝載的內容放到底層,而且上面圖層的內容要能遮蓋住底層預裝載的數據。
如果有朋友希望知道如何制作預裝載進度條,可以到閃吧(www.flash8.net)中的教程中查找。
5.2 文件分割
當Flash的內容多、文件量大時,我們可以將Flash的內容分解成幾個小的Flash文件。然后通過導入外部swf文件實現文件間的鏈接與跳轉。然后,對每個Flash文件都進行預裝載。這樣,我們就可以在最大程度上提高Flash可觀性。
Flash文件量龐大還有很多其他的原因,以上只是對Flash“瘦身”的幾個思想概括,究竟如何“瘦身”及其中的細節還需要讀者朋友們去探索。相信只有實踐才能是我們的Flash作品變得更加完美。
參考文獻:
[1] 李旻.如何給Flash動畫瘦身減肥[N].軟件報,2005-05-19.
[2] FLASH動畫常見問題[EB/OL].(2005-06-03).中華網科技,http://tech.china.com/zh_cn/netschool/homepage/flash/603/20050603/12368888.html.
[3] Flash常識補遺[EB/OL].(2002-05-09).PCDOG教學網,www.pcdog.com/tech/html/200396/6920032314_1.htm.