Adobe Flex 3 Help

Creating subclasses of the HTMLLoader class

You can create a subclass of the HTMLLoader class, to create new behaviors. For example, you can create a subclass that defines default event listeners for HTMLLoader events (such as those events dispatched when HTML is rendered or when the user clicks a link).

The following example extends the HTMLHost class to provide normal behavior when the JavaScript window.open() method is called. The example then defines a subclass of HTMLLoader that uses the custom HTMLHost implementation class:

package
{
    import flash.html.HTMLLoader;
    public class MyHTMLHost extends HTMLHost
    {
        public function MyHTMLHost()
        {
            super(false);
        }
        override public function createWindow(opts:HTMLWindowCreateOptions):void
        {
            var initOptions:NativeWindowInitOptions = new NativeWindowInitOptions();
            var bounds:Rectangle = new Rectangle(opts.x, opts.y, opts.width, opts.height);
            var html:HTMLLoader = HTMLLoader.createRootWindow(true, 
                                                    initOptions, 
                                                    opts.scrollBarsVisible, 
                                                    bounds);
            html.stage.nativeWindow.orderToFront();
            return html
    }
}

The following defines a subclass of the HTMLLoader class that assigns a MyHTMLHost object to its htmlHost property:

package
{
    import flash.html.HTMLLoader;
    import MyHTMLHost;
    import HTMLLoader;
    public class MyHTML extends HTMLLoader
    {
        public function MyHTML()
        {
            super();
            htmlHost = new MyHTMLHost();
        }    
    }
}

For details on the HTMLHost class and the HTMLLoader.createRootWindow() method used in this example, see Defining browser-like user interfaces for HTML content.