萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 影像處理 >> Flash 教學

Flash 聲音特效實戰:聲波擴散視覺化的開關按鈕

效果展示

點擊按鈕播放聲音,同步產生 7 層同心圓環由內向外擴散淡出,模擬聲波傳播;再次點擊停止聲音並移除波紋。
圖1 聲音按鈕效果

元件架構(自底向上)

  1. circle(圖形):白色圓環、無填色、線寬 1。
  2. ripple(MovieClip):7 圖層疊加,每層放入 circle,第 1 幀原大、第 15 幀放大至全螢幕並透明度 0,建立補間動畫,各層錯開 2 幀啟動,形成連續波紋。
    圖2 circle元件
    圖3 ripple時間軸
    圖4 波紋預覽
  3. btn(按鈕):四狀態繪製不同上下文圖示(播放/暫停/按下)。
    圖5 btn四狀態
  4. playmusic(MovieClip 控制器):
    - 圖層 button:第 1 幀放 btn,腳本 on(release){ gotoAndStop(10); }
    - 圖層 playing:第 1 幀放 ripple 疊合按鈕,stop();;第 10 幀移除 ripple
    - 圖層 sound:第 1 幀放入聲音(同步:開始),第 10 幀 stopAllSounds();
    圖6 ripple實例疊合

主場景

拖入 playmusic 實例即完成。

關鍵技術點

  • 多層錯幀補間:7 圖層 × 15 幀 = 105 幀總長,每層間隔 2 幀,形成連續不斷的波紋流。
  • 按鈕控制時間軸跳轉:gotoAndStop(10) 同時觸發「停止波紋」與「停止聲音」,邏輯集中在 playmusic 內部,主場景零代碼。
  • stopAllSounds():全域停止所有聲音,簡單粗暴但有效;複雜專案建議改用 SoundChannel.stop() 精準控制。

優化與擴充

  1. 波紋顏色同步聲音頻譜:AS3 SoundMixer.computeSpectrum() 即時取得頻域資料,映射至漸層色相。
  2. 互動式波紋:滑鼠點擊位置產生單次波紋(ripple 改為單次播放),而非循環。
  3. 效能優化:將 circle 改為 Shape 繪製,避免矢量重繪;或使用 BitmapData 快取波紋幀。
  4. 無障礙:加入鍵盤 Space 觸發、螢幕閱讀器標籤。
copyright © 萬盛學電腦網 all rights reserved