(仅限 AIR)
flash.html
public class HTMLHost
继承HTMLHost Inheritance Object

运行时版本: AIR 1.0

HTMLHost 对象定义用户界面元素的 HTMLLoader 对象的行为,用户界面元素可通过设置 HTML 页的 window 对象的各个属性或调用该对象的各个方法进行控制。这些方法和属性是:

HTMLHost 类中的方法为处理这些 window 设置的每种设置的更改提供了途径。若要使用此类,请创建一个扩展 HTMLHost 类并覆盖要定义其行为的方法的新类(一个子类)。HTMLHost 类的方法处理 JavaScript 的以下属性和方法:

JavaScript 属性或方法HTMLHost 方法
window.blur() windowBlur()
window.focus() windowFocus
window.location updateLocation
window.close() windowClose
window.open() createWindow
window.status updateStatus
window.document.title updateTitle

若要响应 window.moveBy()window.moveTo()window.resizeBy()window.resizeTo() 方法中的更改,请覆盖 HTMLHost 的子类中的 set windowRect() 方法。

每个 HTMLHost 对象最多可与一个 HTMLLoader 对象相关联。将 HTMLHost 实例分配给 HTMLLoader 对象的 htmlHost 属性可建立此关系。将 null 分配给 HTMLLoader 对象的 htmlHost 属性或将 HTMLHost 对象设置为另一个 HTMLLoader 对象的 htmlHost 属性可以从第一个 HTMLLoader 对象中删除该 HTMLHost。

查看示例

另请参见

HTMLLoader
HTMLWindowCreateOptions


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  AIR-only htmlLoader : HTMLLoader
[只读 (read-only)] 将此 HostControl 对象应用到的 HTMLLoader 对象。
HTMLHost
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  AIR-only windowRect : Rectangle
HTMLLoader 对象中的 JavaScript 代码调用 window.moveBy()、window.moveTo()、window.resizeBy() 或 window.resizeTo() 方法时发生变化的属性。
HTMLHost
公共方法
 方法定义方
  
AIR-only HTMLHost(defaultBehaviors:Boolean = true)
创建 HTMLHost 对象。
HTMLHost
  
HTMLLoader 对象中的 JavaScript 代码调用 window.open() 方法时调用的函数。
HTMLHost
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
  
AIR-only updateLocation(locationURL:String):void
HTMLLoader 对象中的 JavaScript 代码设置 window.location 属性时调用的函数。
HTMLHost
  
HTMLLoader 对象中的 JavaScript 代码设置 window.status 属性时调用的函数。
HTMLHost
  
HTMLLoader 对象中的 JavaScript 代码设置 window.document.title 属性或 title 元素发生更改(通过 DOM 或由于加载新页面)时调用的函数。
HTMLHost
 Inherited
返回指定对象的原始值。
Object
  
HTMLLoader 对象中的 JavaScript 代码调用 window.blur() 方法时调用的函数。
HTMLHost
  
HTMLLoader 对象中的 JavaScript 代码调用 window.close() 方法时调用的函数。
HTMLHost
  
HTMLLoader 对象中的 JavaScript 代码调用 window.focus() 方法时调用的函数。
HTMLHost
属性详细信息
AIR-only htmlLoader属性
htmlLoader:HTMLLoader  [只读 (read-only)]

运行时版本: AIR 1.0

将此 HostControl 对象应用到的 HTMLLoader 对象。将该 HTMLLoader 对象的 htmlHost 属性设置为此 HostControl 对象。



实现
    public function get htmlLoader():HTMLLoader

另请参见

AIR-only windowRect属性 
windowRect:Rectangle  [读写]

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码调用 window.moveBy()window.moveTo()window.resizeBy()window.resizeTo() 方法时发生变化的属性。

在 HTMLHost 的子类中,根据需要覆盖 set windowRect() 方法以处理新窗口范围。



实现
    public function get windowRect():Rectangle
    public function set windowRect(value:Rectangle):void
构造函数详细信息
AIR-only HTMLHost()构造函数
public function HTMLHost(defaultBehaviors:Boolean = true)

运行时版本: AIR 1.0

创建 HTMLHost 对象。

参数
defaultBehaviors:Boolean (default = true) — 指示默认情况下是否应该提供根内容行为。
方法详细信息
AIR-only createWindow()方法
public function createWindow(windowCreateOptions:HTMLWindowCreateOptions):HTMLLoader

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码调用 window.open() 方法时调用的函数。

默认情况下,HTMLLoader 的 HTML 页面中对 window.open() 进行的 JavaScript 调用不会 在运行时打开新的 NativeWindow 对象。通过在 HTMLHost 类的子类的 createWindow 方法覆盖中创建新的 NativeWindow 对象,可以在运行时打开新的 NativeWindow 对象。

参数

windowCreateOptions:HTMLWindowCreateOptions — 一个对象,其字符串中包含作为对 window.open() 的调用的 features 参数进行传递的属性。

返回
HTMLLoader — 包含新的 HTML 页的 HTMLLoader 对象。通常,可以在此方法中创建一个新 HTMLLoader 对象,将该对象添加到新 NativeWindow 对象的舞台,然后返回该对象。
AIR-only updateLocation()方法 
public function updateLocation(locationURL:String):void

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码设置 window.location 属性时调用的函数。

参数

locationURL:String — 为 HTMLLoader 对象的 window 属性的 location 属性设置的值。

AIR-only updateStatus()方法 
public function updateStatus(status:String):void

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码设置 window.status 属性时调用的函数。

参数

status:String — 为 HTMLLoader 对象的 window 属性的 status 属性设置的值。

AIR-only updateTitle()方法 
public function updateTitle(title:String):void

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码设置 window.document.title 属性或 title 元素发生更改(通过 DOM 或由于加载新页面)时调用的函数。

参数

title:String — 为 HTMLLoader 对象的 window.document.title 属性设置的值。

AIR-only windowBlur()方法 
public function windowBlur():void

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码调用 window.blur() 方法时调用的函数。

AIR-only windowClose()方法 
public function windowClose():void

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码调用 window.close() 方法时调用的函数。

默认情况下,HTMLLoader 对象的 HTML 页面中对 window.close() 进行的 JavaScript 调用将会关闭包含 HTMLLoader 对象的窗口。

AIR-only windowFocus()方法 
public function windowFocus():void

运行时版本: AIR 1.0

HTMLLoader 对象中的 JavaScript 代码调用 window.focus() 方法时调用的函数。

示例 如何使用示例
HTMLHost.1.as

下面的代码定义 HTMLHost 的子类 CustomHost。CustomHost 类的方法覆盖 HTMLHost 类中继承的方法以定义 HTMLLoader 页面中的 JavaScript 代码设置各个属性或调用 window 对象的各个方法时所要采取的动作:
package
{
    import flash.html.HTMLHost;
    import flash.html.HTMLLoader;
    import flash.display.NativeWindow;
    import flash.display.NativeWindowInitOptions;
    import flash.display.StageScaleMode;
    import flash.geom.Rectangle;
    import flash.text.TextField;

    public class CustomHost extends HTMLHost
    {
        import flash.html.*;
        public var statusField:TextField;
        public function CustomHost(defaultBehaviors:Boolean=true)
        {
            super(defaultBehaviors);
        }
        override public function windowClose():void
        {
            htmlLoader.stage.window.close();
        }
        override public function createWindow(windowCreateOptions:HTMLWindowCreateOptions):HTMLLoader
        {
            var initOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
            var window:NativeWindow = new NativeWindow(initOptions);
            window.visible = true;
            var htmlLoader2:HTMLLoader = new HTMLLoader();
            htmlLoader2.width = window.width;
            htmlLoader2.height = window.height;
            window.stage.scaleMode = StageScaleMode.NO_SCALE;
            window.stage.addChild(htmlLoader2);
            return htmlLoader2;
        }
        override public function updateLocation(locationURL:String):void
        {
            trace(locationURL);
        }        
        override public function set windowRect(value:Rectangle):void
        {
            htmlLoader.stage.nativeWindow.bounds = value;
        }
        override public function updateStatus(status:String):void
        {
            statusField.text = status;
        }        
        override public function updateTitle(title:String):void
        {
            htmlLoader.stage.nativeWindow.title = title + "- Example Application";
        }
        override public function windowBlur():void
        {
            htmlLoader.alpha = 0.5;
        }
        override public function windowFocus():void
        {
            htmlLoader.alpha = 1;
        }
    }
}
创建下面的类(它将 HTMLLoader 对象添加到舞台)以及一个名为 statusBar 的 TextField 对象。HTMLLoader 对象将 CustomHost 对象定义为其 htmlHost 属性:
package
 {
     import flash.display.Sprite;
 
     public class SimpleHTMLBox extends Sprite
     {
         import mx.controls.HTML;
         import flash.html.HTMLLoader;
         import flash.text.TextField;
         import flash.net.URLRequest;
         import CustomHost;
         private var host:CustomHost;
         private var statusField:TextField;
         private var html:HTMLLoader;
         
         public function SimpleHTMLBox()
         {
             html = new HTMLLoader();
             var url:String = "Test.html";
             var urlReq:URLRequest = new URLRequest(url); 
             html.load(urlReq);
             
             host = new CustomHost();
             html.htmlHost = host;
             statusField = new TextField();
             host.statusField = statusField;
             
             configureUI();
         }
         private function configureUI():void
         {
             html.width = 400;
             html.height = 200;
             statusField.width = 400;
             statusField.height = 24;
             statusField.border = true;
             statusField.y = 200;
             
             addChild(html);
             addChild(statusField);                
         }
         
     }
 }

构建一个 AIR 应用程序,该应用程序将由此类定义的对象添加到主窗口的舞台。

在应用程序资源目录(包含应用程序描述符文件的目录)中创建一个名为 Test.html 的 HTML 页,并在其中添加以下内容:

<html>
     <head>
         <title>Test</title>
     </head>
     <body>
         <a href="#" onclick="window.open('Test.html')">window.open('Test.html')</a>
         <br/><a href="#" onclick="window.document.location = 'www.adobe.com'">window.document.location = 'www.adobe.com'</a>
         <br/><a href="#" onclick="window.moveBy(6, 12)">moveBy(6, 12)</a>
         <br/><a href="#" onclick="window.close()">window.close()</a>
         <br/><a href="#" onclick="window.blur()">window.blur()</a>
         <br/><a href="#" onclick="window.focus()">window.focus()</a>
         <br/><a href="#" onclick="window.status = new Date().toString()">window.status = new Date().toString()</a>
     </body>
 </html>

测试应用程序时,CustomHost 类可以处理 HTML 页中与用户界面相关的 JavaScript 设置。