用戶上傳內容可能是圖片(jpg/png)也可能是 Flash(.swf),需同一組件兼容渲染兩種格式。
~/Scripts/swfobject.js<object>/<embed> 標籤嵌入 SWF;圖片則直接生成 <img>public class MediaModel {
public string MediaUrl { get; set; } // 相對路徑
public string MediaType { get; set; } // "image" 或 "flash"
public int Width { get; set; }
public int Height { get; set; }
public string AltText { get; set; }
}
<script src="~/Scripts/swfobject.js"></script>
<div id="mediaContainer"></div>
<script>
var model = @Html.Raw(Json.Encode(Model));
if (model.MediaType == "flash") {
swfobject.embedSWF(model.MediaUrl, "mediaContainer",
model.Width, model.Height, "9.0.0",
"/Scripts/expressInstall.swf", {}, { wmode: "transparent" }, {});
} else {
$('#mediaContainer').html('<img src="' + model.MediaUrl + '" width="' + model.Width + '" height="' + model.Height + '" alt="' + model.AltText + '" />');
}
</script>
現代替代:Flash 已於 2020 年停止支持,現代項目無需兼容 SWF。圖片/視頻統一使用
<video>/<img>,動畫採用 CSS/Canvas/WebGL/Lottie 實現。