萬盛學電腦網

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

Flash 網頁嵌入透明背景設置:wmode=Transparent 參數詳解

在 HTML 中嵌入 Flash (SWF) 時,預設背景為不透明矩形,會遮蓋網頁底層元素。添加 wmode="transparent" 參數可使 SWF 背景透明,實現與網頁元素疊加、非矩形顯示區域等效果。

設置方法

Object 標籤 (IE)

<object ...>
    <param name="movie" value="your.swf" />
    <param name="WMode" value="Transparent" />
    ...
</object>

Embed 標籤 (Firefox/Chrome/Safari)

<embed src="your.swf" ... wmode="transparent" />

SWFObject / swfobject.js 動態嵌入

var params = { wmode: "transparent" };
swfobject.embedSWF("your.swf", "flashContent", "550", "400", "10.0.0", "expressInstall.swf", {}, params);

透明模式下的注意事項

項目說明
效能透明模式需額外合成運算,**CPU/GPU 佔用較高**,移動設備上可能導致幀率下降。
文字輸入部分瀏覽器/版本下,透明模式下 Flash 內文字輸入框無法獲得焦點或輸入法異常。
滑鼠事件穿透透明區域滑鼠事件會穿透到下層 HTML 元素,可能影響互動邏輯。
全螢幕全螢幕模式下 wmode 失效,背景強制不透明。
替代方案若僅需矩形無背景,建議 SWF 內部設定舞台背景色與網頁一致,或使用 wmode="opaque"(不透明但可讓 HTML 元素覆蓋在 SWF 上方),效能優於 transparent。

常見問題排查

  • 設置後仍不透明 → 檢查 param 名稱大小寫(WMode 不區分大小寫)、embed 屬性拼寫、瀏覽器快取(強制刷新)。
  • 文字無法輸入 → 嘗試 wmode="opaque" 或要求用戶點擊輸入框聚焦。
  • 性能差 → 縮小 SWF 尺寸、降低幀率、避免大面積向量圖形疊加、考慮 Canvas/WebGL 替代方案。

簡單來說:在 <param> 與 <embed> 中加入 wmode="transparent" 即可啟用 Flash 透明背景,但需權衡效能與相容性。

copyright © 萬盛學電腦網 all rights reserved