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 的显示宽度高度是一种很不错的做法。此项技术适用于根据 HTML 和 CSS 流规则进行布置时具有合理的最小宽度的页。不过,在缺少 HTMLLoader 提供的合理宽度时,有些页会生成窄而长的布局。

注: 当更改 HTMLLoader 对象的宽度和高度时,scaleX 和 scaleY 值不会发生更改,大多数其他类型的显示对象也存在此现象。

HTMLLoader 内容的透明度

HTMLLoader 对象的 paintsDefaultBackground 属性(默认情况下为 true)确定 HTMLLoader 对象是否绘制不透明背景。当 paintsDefaultBackgroundfalse 时,背景是透明的。显示对象容器或 HTMLLoader 对象下的其他显示对象在 HTML 内容的前景元素后是可见的。

如果 body 元素或 HTML 文档的任何其他元素指定了背景颜色(例如,使用 style="background-color:gray"),则 HTML 的该部分背景是不透明的,并使用指定的背景颜色呈现。如果设置了 HTMLLoader 对象的 opaqueBackground 属性,并且 paintsDefaultBackgroundfalse,则为 opaqueBackground 设置的颜色是可见的。

注: 可以使用透明的 PNG 格式的图形为 HTML 文档中的元素提供 Alpha 混合背景。不支持对 HTML 元素设置不透明样式。

缩放 HTMLLoader 内容

在对 HTMLLoader 对象进行缩放时,缩放系数应避免超过 1.0。如果对 HTMLLoader 对象进行放大,则 HTMLLoader 内容中的文本将以特定的分辨率呈现,从而产生像素化效果。在调整窗口大小时,为防止 HTMLLoader 及其内容缩放,请将舞台的 scaleMode 属性设置为 StageScaleMode.NO_SCALE

在 HTML 页中加载 SWF 或 PDF 内容时的注意事项

在以下情况下,加载到 HTMLLoader 对象中的 SWF 和 PDF 内容将消失:

  • HTMLLoader 对象的缩放系数不为 1.0。

  • 将 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 窗口中,外部效果沿窗口边缘剪裁

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;