Flash 作品最終發布為 SWF,檔案大小直接決定加載速度、用戶留存與頻寬成本。網頁廣告常要求 < 40KB,遊戲/應用亦需控制在合理範圍。本文總結 10 大體積優化鐵律,涵蓋素材處理、元件策略、字體嵌入、音視頻選擇等全鏈路。
| 排名 | 殺手 | 症狀 | 核心對策 |
|---|---|---|---|
| 1 | 位圖濫用/處理不當 | 大圖縮小用、未壓縮、透明區域大 | PS 預處理至顯示尺寸、PNG-24/8 選擇、遮罩替代透明 |
| 2 | 矢量過度複雜 | 剪紙風、大量錨點、自動追蹤產物 | 簡化路徑、曲線優化 (Ctrl+Alt+Shift+C)、權衡改位圖 |
| 3 | 字體全嵌入 | 中文字體動輒 2-5MB | 僅嵌入必要字符、優先設備字體、動態文本共享嵌入 |
| 4 | 音頻格式錯誤 | WAV 未壓縮、高比特率 MP3 | 短音效 MP3 64kbps、長音樂 96-128kbps、循環點優化 |
| 5 | 重複元件未複用 | 相同圖形重複繪製/拷貝 | 轉元件 (F8) → 庫拖拽實例化、共享庫跨文件複用 |
| 6 | 動畫元件類型錯選 | 影片剪輯濫用、圖形元件未用 | 靜態/線性動畫用圖形元件,需腳本控制用影片剪輯 |
| 7 | 矢量實為位圖轉換 | 描圖產生海量色塊/錨點 | 源頭用矢量繪圖、或接受位圖優化 (PNG+遮罩) |
| 8 | 位圖透明區域過大 | PS 文字特效導入、鏤空圖形 | 保存帶背景圖 + Flash 遮罩層遮蓋背景 |
| 9 | 視頻內嵌 | FLV/F4V 直接嵌入時間軸 | 外部載入 (NetStream)、流式播放、編碼優化 H.264 |
| 10 | 大量靜態文字 | 文章/說明全靜態文本嵌入字形 | 設備字體/動態文本+共享字體、外部 XML/HTML+CSS 渲染 |
// 錯誤:重複繪製 100 顆星星
for (i=0; i<100; i++) { drawStar(); }
// 正確:1 個星星元件 + 100 個實例
var star:MovieClip = new StarMC();
for (i=0; i<100; i++) {
var s:MovieClip = new StarMC();
s.x = Math.random()*stage.stageWidth;
s.y = Math.random()*stage.stageHeight;
addChild(s);
}
問題:PS 制作的發光文字、鏤空花體,透明像素佔 80%+,PNG 體積巨大。

體積優化不是事後補救,而是貫穿素材準備、構建、發布全流程的系統工程。建立團隊規範,人人內化這 10 條鐵律,SWF 體積自然可控。