在 ASP.NET 頁面嵌入 Flash (.swf) 與純 HTML 無異,關鍵在正確撰寫 <object> / <embed> 雙標籤以相容 IE (ActiveX) 與非 IE (NPAPI) 瀏覽器。
<div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="150" height="280">
<param name="movie" value="~/Flash/movie.swf" />
<param name="quality" value="high" />
<param name="SCALE" value="exactfit" />
<param name="wmode" value="transparent" /> <!-- 透明背景,避免遮擋下拉選單 -->
<embed src="~/Flash/movie.swf"
width="150" height="280"
quality="high"
scale="exactfit"
wmode="transparent"
pluginspage="https://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash"></embed>
</object>
</div>
| 屬性 | 用途 | 建議值 |
|---|---|---|
| movie / src | SWF 檔案路徑 | 相對路徑 (~/Flash/...) 或絕對 URL |
| quality | 播放品質 | high / autolow / autohigh |
| wmode | 視窗模式 | transparent (透明) / opaque / window (預設) |
| SCALE / scale | 縮放模式 | exactfit (填滿) / noborder / showall |
| FlashVars | 傳遞參數給 SWF | <param name="FlashVars" value="id=123&lang=zh" /> |
// 後端動態設定 SWF 路徑與參數
protected void Page_Load(object sender, EventArgs e)
{
string swfUrl = ResolveUrl("~/Flash/player.swf");
string flashVars = $"videoId={Request["id"]}&autoPlay=true";
// 方式1:Literal 輸出完整標籤
ltlFlash.Text = $@"<object ...><param name='movie' value='{swfUrl}' />
<param name='FlashVars' value='{flashVars}' />...</object>";
// 方式2:HtmlGenericControl 建立 object/embed (較繁瑣)
}
<video>、<canvas>、WebGL、Lottie (JSON 動畫) 等技術。classid 必須為完整 CLSID,否則無法載入 ActiveX 控件。本文僅供維護舊系統參考,新開發請務必採用現代 Web 標準技術替代 Flash。