as3 StageWebView在一个类不显示



我相信这是一个简单的问题。我有一个主。作为类调用另一个正在加载StageWebView的类。如果自己调用的StageWebView工作良好,但当我从另一个类调用它将不显示。我忘记了什么简单的事情?

也许这与加载类中的"阶段"有关?

文件main

public function addPopeNews()
    {
    thePopeNews = new popeNews();
    addChild(thePopeNews);      
    }

PopeNews.as

package com
{
    import flash.display.MovieClip;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.*;
    import flash.net.URLRequest;
    import flash.media.StageWebView;
    import flash.geom.Rectangle;
    public class popeNews extends MovieClip
    {

        public var backBar:popeNewsBar;
        public var webView:StageWebView;
        public function popeNews()
        {
        webView=new StageWebView();
        webView.stage = this.stage;

        webView.loadURL("www.myUrl.com");
        trace("POPE NEWS!!!"); /// trace works! 

        backBar = new popeNewsBar();
        backBar.width = Main._screenX;
        backBar.scaleY = backBar.scaleX;
        webView.addEventListener(Event.COMPLETE, webLoaded);
            webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING,onChanging);

        }
        public function webLoaded(e:Event)
        {
            trace("web loaded"); // trace works!!
            if (webView.isHistoryBackEnabled)
            {
            addChild(backBar);
            backBar.bb.addEventListener(MouseEvent.CLICK, goBack);
            webView.viewPort = new Rectangle(0,backBar.height,Main._screenX,Main._screenY - backBar.height);
            }
            else
            {
                webView.viewPort = new Rectangle(0,0,Main._screenX,Main._screenY);
            }
        }
        public function goBack(e:Event)
        {
            if (webView.isHistoryBackEnabled)
            {
                trace("Called GO BACK");
                webView.historyBack();
                removeChild(backBar);
                backBar.bb.removeEventListener(MouseEvent.CLICK, goBack);
                return;
            }
            if (webView.isHistoryForwardEnabled)
            {
                webView.historyForward();
                return;
            }
        }
        public function onError(e:ErrorEvent):void
        {
            //infoBox.text="Page is not available. Try reloading.";
        }
        public function onChanging(e:LocationChangeEvent):void
        {
            //webView.viewPort = null;
            trace("Called CHANGING!!!");
        }
        /// 
    }
}

你是对的,阶段是PopeNews构造函数中的null。你应该把你的初始化代码放入一个新方法中,并监听ADDED_TO_STAGE事件。

public function popeNews()
{
    addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
}
private function addedToStageHandler(ev:Event):void
{
    webView=new StageWebView();
    webView.stage = this.stage;
    webView.loadURL("www.myUrl.com");
    trace("POPE NEWS!!!"); /// trace works! 
    backBar = new popeNewsBar();
    backBar.width = Main._screenX;
    backBar.scaleY = backBar.scaleX;
    webView.addEventListener(Event.COMPLETE, webLoaded);
    webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING,onChanging);
}

相关内容

  • 没有找到相关文章

最新更新