Flash 元件屬性中的「在第一幀導出」若不當勾選,會導致 Loading 畫面必須等待所有導出資源下載完才顯示,嚴重破壞載入體驗。本文針對 V2 元件、聲音、影片剪輯三類資源提供解決方案。
勾選「在第一幀導出」 → 資源被編譯至 SWF 第 1 幀 → Loading 程式碼在第 1 幀之後 → 用戶需下載完所有導出資源(可能數 MB)才見到 Loading 條 → 體驗極差。
attachSound() 呼叫之前的某一幀,將聲音元件以聲音事件方式拖入時間軸(同步屬性選 Event)。stopAllSounds(); 防止聲音提前播放。注意:stopAllSounds() 會停止所有聲音,確保此時無其他聲音播放;若聲音開頭非靜音,拖入時間軸可能產生瞬間「卡音」,建議少用 attachSound,能用時間軸同步就用時間軸。
attachMovie() 前的某幀,將該 MC 拖入舞台並隱藏(_alpha=0、移出舞台、或改變深度後 removeMovieClip())。removeMovieClip() 官方文件稱無法移除編輯器放置的 MC,實測將該 MC 深度改為非負數(或將動態建立 MC 深度設為負數)即可移除。此優化可使 Loading 從 1% 開始顯示,大幅提升用戶感知效能。