前言
Flash 檔案過大導致載入緩慢、播放卡頓是常見痛點。本文彙整 17 項實戰優化技巧,涵蓋符號複用、動畫方式、向量/位圖選擇、程式碼結構、載入策略等核心面向,助你打造輕量流暢的 Flash 作品。
核心優化原則
1. 善用符號複用
重複使用元素**必須轉為元件(Graphic/MovieClip/Button)**。SWF 僅儲存一次元件定義,實例化不增加體積。
2. 優先用補間動畫,少用逐幀動畫
- 動作補間/形狀補間:僅記錄關鍵幀屬性差異,檔案極小
- 逐幀動畫:每幀完整記錄畫面,體積呈線性增長
- 關鍵幀越多檔案越大,能用補間絕不逐幀
3. 線條風格:實線優於虛線/特殊線條
- 實線數據最簡單(兩端點)
- 虛線、波浪線、藝術筆觸需記錄完整路徑與參數,體積大 3-5 倍
- 大面積描邊請用實線
4. 向量優於位圖
- 向量任意縮放不失真、檔案小、CPU 渲染快
- 位圖僅用於靜態背景/材質,嚴禁位圖做動畫(Flash 不擅長位圖變換)
- 匯入位圖前先在 PS 壓縮至顯示尺寸 1-1.5 倍,JPEG 70-80% 品質
5. 簡化向量路徑
- 選取形狀 → 修改 → 形狀 → 優化(Ctrl+Alt+Shift+C)
- 調整曲線容差,刪除冗餘錨點,可減 30-50% 向量數據
- 複雜描圖圖片優先用 Streamline/Illustrator 簡化後再匯入
6. 圖片壓縮:JPEG 為主
- 匯入位圖 → 資源庫右鍵「屬性」→ 壓縮選「JPEG」→ 品質 60-80
- 照片類圖片 JPEG 最優;純色/文字圖用 PNG-8
7. 音訊壓縮:MP3 唯一選擇
- 發布設定 → 音訊 → MP3、單聲道、64-96kbps
- 音效片段可更低(32-48kbps),背景音樂 96-128kbps
- 避免 WAV/ADPCM/Raw 等未壓縮格式
8. 字體嵌入最小化
- 動態/輸入文字:文字屬性 → 字元嵌入 → 僅嵌入使用字符(基本拉丁+中文常用字)
- 勿選「所有字符」—— 會嵌入整套字型,單一中文字型可達 2-5MB
- 靜態文字無需嵌入(發布時自動轉曲)
9. 避免文字拆散
- 嚴禁 修改 → 拆散(Ctrl+B)文字
- 拆散後文字變向量形狀,每字符獨立儲存路徑,體積暴增 10-50 倍
- 需特效文字請在 PS/AI 製圖匯入 PNG
10. 減少漸層填充
- 漸層填充比純色多佔 ~50 bytes/區域
- 大面積背景漸層可接受,小圖示/按鈕請用純色
- 複雜漸層考慮用位圖替代
11. 縮小動畫變化區域
- 關鍵幀變化區域越小,渲染運算越少
- 避免全螢幕大面積變化,將動畫元素限制在必要區域
- 靜態背景獨立圖層,不參與重繪
12. 圖層分離:動態與靜態分層
- 有動作的物件**各自獨立圖層**
- 靜態背景、裝飾元素合併靜態圖層
- Flash 渲染引擎按圖層合成,動態層獨立重繪更高效
13. 避免同時多物件動畫
- 同時間段動畫物件越多,CPU 負載越高
- 錯開動畫時間軸,或用程式碼序列控制
14. 模組化載入:LoadMovie 分割
- 大型專案拆分為主影片 + 多個子 SWF
- 主影片用
loadMovieNum() / Loader 按需載入
- 離開區段執行
unloadMovie() 釋放記憶體
- 首屏只載入必要內容,大幅降低初始等待
15. 必加 Preloader 預載畫面
- 首幀放置載入進度條,監聽
bytesLoaded/bytesTotal
- 大型音訊/視訊更需預載
- 預載完成再進入主內容,確保平滑播放
16. 舞台尺寸越小越好
- 修改 → 文件 → 調整舞台寬高
- 輸出 HTML 時可在發布設定縮放顯示尺寸(畫質無損)
17. 先做小尺寸再放大發布
- Flash 內做 1/2 或 1/3 尺寸 → 匯出小 SWF
- HTML 發布設定將寬高設為 2x/3x
- 瀏覽器縮放顯示,向量畫質無損、檔案大幅縮小
優化檢查清單
發布前逐項勾選:
- [ ] 所有重複元素已轉元件
- [ ] 動畫以補間為主,逐幀最少化
- [ ] 位圖已壓縮至適當尺寸與品質
- [ ] 音訊為 MP3 且碼率合理
- [ ] 字體嵌入僅含必要字符
- [ ] 無拆散文字
- [ ] 漸層填充已審視必要性
- [ ] 動態/靜態圖層分離
- [ ] 大專案已模組化載入
- [ ] 已加 Preloader
- [ ] 多瀏覽器/裝置實測流暢
效能分析工具
- 頻寬模擬器:控制 → 測試影片 → 檢視 → 頻寬模擬器
- 輸出報表:發布設定 → 勾選「產生大小報表」
- Flash Builder Profiler / Scout(AS3 專案)深度分析 CPU/記憶體