顯示 HTMLLoader 物件的屬性

Adobe AIR 1.0 以及更新的版本

HTMLLoader 物件會繼承 Adobe® Flash® Player Sprite 類別的顯示屬性。舉例來說,您可以調整背景大小、移動背景、隱藏背景,以及變更背景顏色。或者,您也可以套用進階特效,例如濾鏡、遮色片、縮放和旋轉。套用特效時,請考量對易讀性造成的影響。套用某些特效時,載入至 HTML 網頁的 SWF 和 PDF 內容將無法顯示。

HTML 視窗包含可用於呈現 HTML 內容的 HTMLLoader 物件。這個物件受限於視窗區域中,因此變更尺寸、位置、旋轉方式或縮放係數時,不一定都會產生所希望的結果。

基本顯示屬性

HTMLLoader 的基本顯示屬性可以讓您將控制項置於其父輩顯示物件中、設定大小,及顯示或隱藏控制項。您不應該變更 HTML 視窗之 HTMLLoader 物件的基本顯示屬性。

這些基本顯示屬性包括:

屬性

備註

xy

將物件置於其父輩容器中。

widthheight

變更顯示區域的尺寸。

visible

控制物件及其包含之內容的可見性。

在 HTML 視窗以外,HTMLLoader 物件的 widthheight 屬性的預設值為 0。您必須先指定所載入之 HTML 內容的寬度和高度,才能看到其內容。HTML 內容會依照 HTMLLoader 的大小來繪製,並且根據內容中的 HTML 和 CSS 屬性來配置。變更 HTMLLoader 的大小時,內容會經過重新排列。

將內容載入至新的 HTMLLoader 物件 (其中 width 仍然設定為 0) 時,許多人往往會想要使用 contentWidthcontentHeight 屬性設定 HTMLLoader 的顯示 widthheight。這項技巧適用於在根據 HTML 和 CSS 排列規則進行配置時,具有合理最小寬度的網頁。不過,在 HTMLLoader 沒有提供合理寬度的情況下,某些網頁的內容排列會呈現窄長的配置。

備註: 當您變更 HTMLLoader 物件的寬度和高度時,scaleX 和 scaleY 值不會變更,就像其它大多數類型的顯示物件一樣。

HTMLLoader 內容的透明度

HTMLLoader 物件的 paintsDefaultBackground 屬性 (預設為 true) 可決定 HTMLLoader 物件是否繪製不透明背景。當 paintsDefaultBackgroundfalse 時,背景會是透明的。在 HTML 內容之前景元素的後方,可以看見 HTMLLoader 物件下方的顯示物件容器或它顯示物件。

如果 HTML 文件的 body 元素或其它任何元素指定背景顏色 (例如,使用 style="background-color:gray"),則 HTML 的該部分便不透明,並且呈現為指定的背景顏色。如果您設定 HTMLLoader 物件的 opaqueBackground 屬性,而且 paintsDefaultBackgroundfalse,則針對 opaqueBackground 所設定的顏色便為可見。

備註: 您可以使用透明的 PNG 格式圖像,為 HTML 文件中的元素提供經過 Alpha 混合後的背景。不支援設定 HTML 元素的不透明樣式。

縮放 HTMLLoader 內容

請避免使用 1.0 以上的縮放係數來縮放 HTMLLoader 物件。如果放大 HTMLLoader 物件,HTMLLoader 內容會以特定解析度呈現,並呈現像素化。重新調整視窗時,若要避免縮放 HTMLLoader 及其內容,請將 Stage 的 scaleMode 屬性設定為 StageScaleMode.NO_SCALE

在 HTML 網頁中載入 SWF 或 PDF 內容時必須考量的事項

在下列情況中,載入至 HTMLLoader 物件中的 SWF 和 PDF 內容會消失:

  • 使用係數為 1.0 以外的值縮放 HTMLLoader 物件。

  • 將 HTMLLoader 物件的 alpha 屬性設定為 1.0 以外的值。

  • 旋轉 HTMLLoader 內容。

如果您移除違反規定的屬性設定,並移除使用中的濾鏡,內容就會重新顯示。

此外,執行階段無法在透明視窗顯示 PDF 內容。當 object 或 embed 標籤的 wmode 參數設定為 opaquetransparent 時,執行階段只顯示內嵌於 HTML 網頁的 SWF 內容。因為 wmode 預設值為 window,所以 SWF 內容不會顯示在透明視窗中,除非您明確設定 wmode 參數。

備註: AIR 1.5.2 之前的版本,無論使用哪一個 wmode 值,都無法顯示內嵌於 HTML 的 SWF。

如需有關在 HTMLLoader 中載入這些媒體類型的詳細資訊,請參閱在 HTML 中嵌入 SWF 內容在 AIR 中新增 PDF 內容

進階顯示屬性

HTMLLoader 類別會繼承可供特殊特效使用的數個方法。一般而言,當搭配 HTMLLoader 顯示使用時,這些特效具有幾項限制。但是針對轉場或其它暫時性特性而言,這些特效就很有用。例如,如果您顯示對話方塊以取得使用者輸入,那麼直到使用者關閉對話方塊為止,您都可以讓主要視窗呈現模糊的狀態。同樣地,關閉視窗時,可以用淡出的方式關閉。

進階顯示屬性包括:

屬性

限制

alpha

可能會降低 HTML 內容的可讀性。

filters

在 HTML Window 中,外部特效會遭視窗邊緣裁剪。

graphics

使用圖像命令繪製的形狀 (包含預設背景) 會在 HTML 內容下方顯示。paintsDefaultBackground 屬性必須設定為 false,才能看見所繪製的形狀。

opaqueBackground

不會變更預設背景的顏色。paintsDefaultBackground 屬性必須設定為 false,才能看見這個顏色圖層。

rotation

矩形 HTMLLoader 區域的角落可能會遭視窗邊緣裁剪。在 HTML 內容中載入的 SWF 和 PDF 內容將不會顯示。

scaleXscaleY

使用大於 1 的縮放係數時,顯示內容可能呈現像素化。在 HTML 內容中載入的 SWF 和 PDF 內容將不會顯示。

transform

可能會降低 HTML 內容的易讀性。HTML 顯示可能會遭視窗邊緣裁剪。如果轉換涉及旋轉、縮放或傾斜,在 HTML 內容中載入的 SWF 和 PDF 內容便不會顯示。

下列範例會示範如何設定 filters 陣列以模糊化整個 HTML 顯示:

var html:HTMLLoader = new HTMLLoader(); 
var urlReq:URLRequest = new URLRequest("http://www.adobe.com/"); 
html.load(urlReq); 
html.width = 800; 
html.height = 600; 
 
var blur:BlurFilter = new BlurFilter(8); 
var filters:Array = [blur]; 
html.filters = filters;