在 HTML 中嵌入 SWF 內容Adobe AIR 1.0 以及更新的版本 您可以在 AIR 應用程式的 HTML 內容中嵌入 SWF 內容,就像在瀏覽器的 HTML 內容中嵌入 SWF 內容一樣。使用 object 標籤、embed 標籤或兩者,即可嵌入 SWF 內容。 備註: 常見的網頁開發作法,是同時使用 object 和 embed 標籤,在 HTML 網頁中顯示 SWF 內容。這種作法在 AIR 中並沒有優點,您可以只在內容中使用符合 W3C 標準的 object 標籤本身,在 AIR 中顯示內容。同時,對於也會在瀏覽器中顯示的 HTML 內容,您也可以繼續使用 object 和 embed 標籤兩者。
如果您已在顯示 HTML 和 SWF 內容的 NativeWindow 物件中啟用透明度,則當用來嵌入內容的視窗模式 (wmode) 值設定為:window 時,AIR 不會顯示 SWF 內容。 若要在透明視窗的 HTML 頁面中顯示 SWF 內容,請將 wmode 參數設定為 opaque 或 transparent。 window 是 wmode 的預設值,因此如果您沒有指定值,則內容可能無法顯示。 在下列範例中,會示範如何使用 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 內容。 |
|