<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="550" height="400" id="Untitled-1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="mymovie.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="mymovie.swf" quality="high" bgcolor="#ffffff"
width="550" height="400" name="mymovie" align="middle"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="https://www.macromedia.com/go/getflashplayer" />
</object>
缺點:embed 不符 W3C;IE ActiveX 需點擊激活;無版本檢測。
純 JavaScript 動態生成標籤,解決所有上述問題。
<div id="swfid"></div>
<script src="swfobject.js"></script>
<script>
swfobject.embedSWF("test.swf", "swfid", "300", "120", "9.0.0", "expressInstall.swf");
</script>
<script>
var flashvars = { name1: "hello", name2: "world", name3: "foobar" };
var params = { menu: "false", wmode: "transparent" };
var attributes = { id: "dynamicContent", name: "dynamicContent" };
swfobject.embedSWF("test.swf", "content", "300", "120", "6.0.0", "expressInstall.swf",
flashvars, params, attributes);
</script>
flashvars:Flash 內部可讀取的變數。params:Player 參數(wmode, allowScriptAccess 等)。attributes:生成 object 標籤的屬性。swfobject.embedSWF("test.swf", "content5", "300", "120", "6.0.0", "expressInstall.swf",
{name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"});
| Flash 功能 | HTML5 替代 |
|---|---|
| 攝像頭/麥克風 | navigator.mediaDevices.getUserMedia() |
| 視頻播放 | <video> + HLS/DASH/MP4 |
| 向量動畫 | CSS Animation / SVG / Canvas / Lottie |
| 本地存儲 | localStorage / IndexedDB |
| 跨域通信 | postMessage / CORS / WebSocket |
結論:維護舊專案請用 SWFObject;新專案直接採用 HTML5 標準,徹底擺脫 Flash 依賴。