首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

網頁嵌入 Flash 方案演進:從 Object/Embed 到 SWFObject 最佳實踐

     編輯:Java 相關知識

傳統方案:Object + Embed

<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 需點擊激活;無版本檢測。

SWFObject 2.x:現代標準方案

純 JavaScript 動態生成標籤,解決所有上述問題。

1. 最簡單嵌入

<div id="swfid"></div>
<script src="swfobject.js"></script>
<script>
swfobject.embedSWF("test.swf", "swfid", "300", "120", "9.0.0", "expressInstall.swf");
</script>

2. 傳遞參數、變數、屬性

<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 標籤的屬性。

3. 一行式寫法(簡潔)

swfobject.embedSWF("test.swf", "content5", "300", "120", "6.0.0", "expressInstall.swf",
    {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"});

SWFObject 核心優勢總結

  1. W3C 合規:生成標準標籤,無驗證錯誤。
  2. 解決 IE 點擊激活:JS 動態寫入繞過 Eolas 專利。
  3. 版本檢測與 Express Install:版本不足自動引導升級。
  4. 優雅降級:容器內預置替代內容(圖片/連結),無 Flash 環境自動顯示。
  5. 高復用性:同一 JS 邏輯嵌入多個 Flash,參數化配置。

資源連結

現代替代:HTML5 原生 API

Flash 功能HTML5 替代
攝像頭/麥克風navigator.mediaDevices.getUserMedia()
視頻播放<video> + HLS/DASH/MP4
向量動畫CSS Animation / SVG / Canvas / Lottie
本地存儲localStorage / IndexedDB
跨域通信postMessage / CORS / WebSocket

結論:維護舊專案請用 SWFObject;新專案直接採用 HTML5 標準,徹底擺脫 Flash 依賴。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved