在 HTML 中嵌入 SWF 內容

Adobe AIR 1.0 以及更新的版本

您可以在 AIR 應用程式的 HTML 內容中嵌入 SWF 內容,就像在瀏覽器的 HTML 內容中嵌入 SWF 內容一樣。使用 object 標籤、embed 標籤或兩者,即可嵌入 SWF 內容。

備註: 常見的網頁開發作法,是同時使用 objectembed 標籤,在 HTML 網頁中顯示 SWF 內容。這種作法在 AIR 中並沒有優點,您可以只在內容中使用符合 W3C 標準的 object 標籤本身,在 AIR 中顯示內容。同時,對於也會在瀏覽器中顯示的 HTML 內容,您也可以繼續使用 objectembed 標籤兩者。

如果您已在顯示 HTML 和 SWF 內容的 NativeWindow 物件中啟用透明度,則當用來嵌入內容的視窗模式 (wmode) 值設定為:window 時,AIR 不會顯示 SWF 內容。 若要在透明視窗的 HTML 頁面中顯示 SWF 內容,請將 wmode 參數設定為 opaquetransparentwindowwmode 的預設值,因此如果您沒有指定值,則內容可能無法顯示。

在下列範例中,會示範如何使用 HTML object 標籤,在 HTML 內容中顯示 SWF 檔。wmode 參數已設定為 opaque,即使基礎 NativeWindow 物件為透明,還是可以顯示內容。此 SWF 檔是從應用程式目錄載入,但是您可以使用 AIR 支援的任何 URL 配置 (SWF 檔的載入來源位置會決定 AIR 要在哪個安全執行程序中放置內容)。

<object type="application/x-shockwave-flash" width="100%" height="100%"> 
    <param name="movie" value="app:/SWFFile.swf"></param> 
    <param name="wmode" value="opaque"></param> 
</object>

您也可以使用 Scrip 動態載入內容。下列範例會建立 object 節點,以顯示 urlString 參數中指定的 SWF 檔。在範例中,會加入該節點做為網頁元素的子系,而這個網頁元素的 ID 是由 elementID 參數指定:

<script> 
function showSWF(urlString, elementID){ 
    var displayContainer = document.getElementById(elementID); 
    var flash = createSWFObject(urlString, 'opaque', 650, 650); 
    displayContainer.appendChild(flash); 
} 
function createSWFObject(urlString, wmodeString, width, height){ 
    var SWFObject = document.createElement("object"); 
    SWFObject.setAttribute("type","application/x-shockwave-flash"); 
    SWFObject.setAttribute("width","100%"); 
    SWFObject.setAttribute("height","100%"); 
    var movieParam = document.createElement("param"); 
    movieParam.setAttribute("name","movie"); 
    movieParam.setAttribute("value",urlString); 
    SWFObject.appendChild(movieParam); 
    var wmodeParam = document.createElement("param"); 
    wmodeParam.setAttribute("name","wmode"); 
    wmodeParam.setAttribute("value",wmodeString); 
    SWFObject.appendChild(wmodeParam);      
    return SWFObject; 
} 
</script>

縮放或旋轉 HTMLLoader 物件,或將 alpha 屬性值設為 1.0 以外的值,都無法顯示 SWF 內容。在 AIR 1.5.2 之前的版本中,無論 wmode 的值設定為何,都無法在透明視窗中顯示 SWF 內容。