首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将stagewebviewbridge实例添加到使用FB4.6的阶段

如何将stagewebviewbridge实例添加到使用FB4.6的阶段
EN

Stack Overflow用户
提问于 2014-09-07 05:02:41
回答 1查看 445关注 0票数 2

我在闪存生成器4.6中使用以下代码(作为android和ios的测试移动应用程序,试图用stagewebviewbridge取代stagewebview,以利用javascript的通信优势).

代码直接来自文档,看起来很直接,但是webview实例没有显示,而且我似乎只能了解控制台中"END_DISK_PARSING“显示的跟踪.

由于某种原因,事件侦听器从未为onDeviceReady调用DEVICE_READY函数.

它不会产生任何错误,控制台只显示"End_Disk_Parsing“。我正在使用FB4.6溢价,FlexSDKver4.12,并试图在安卓设备(HTC )上进行测试,并在-app.xml文件中指定了对互联网的权限。

有人熟悉SWVBridge,知道我在这里应该做什么吗?

我已经使用了很多次默认的舞台视图,并且非常熟悉它是如何工作的,但是到目前为止还无法在舞台上获得任何可见的结果.

我使用的代码如下:

代码语言:javascript
复制
import es.xperiments.media.StageWebViewDisk;
        import es.xperiments.media.StageWebviewDiskEvent;
        import es.xperiments.media.StageWebViewBridge;
        import es.xperiments.media.StageWebViewBridgeEvent;
        import flash.events.Event;
        import flash.events.MouseEvent;

        // this is our main view
        public var view:StageWebViewBridge;

            public function init1():void{
                // init the disk filesystem
                StageWebViewDisk.addEventListener( StageWebviewDiskEvent.END_DISK_PARSING, onInit );
                StageWebViewDisk.setDebugMode( true );
                StageWebViewDisk.initialize( stage );
            }

            // Fired when StageWebviewDiskEvent cache process finish 
            public function onInit( e:StageWebviewDiskEvent ):void{
                trace( 'END_DISK_PARSING');    

                // create the view
                view = new StageWebViewBridge( 0,0, 320,240 );

                // listen StageWebViewBridgeEvent.DEVICE_READY event to be sure the communication is ok
                view.addEventListener(StageWebViewBridgeEvent.DEVICE_READY, onDeviceReady );

                // load a test url...
                view.loadURL('http://www.google.com');

            }

            public function onDeviceReady( e:Event ):void{
                trace('onDeviceReady\n');
                // all is loaded and ok, show the view
                addChild( view );
            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-07 15:34:36

在睡了一夜又喝了一杯咖啡之后解决了这个问题:

这段代码对我来说很好:

代码语言:javascript
复制
import es.xperiments.media.StageWebViewBridge;
                    import es.xperiments.media.StageWebViewBridgeEvent;
                    import es.xperiments.media.StageWebViewDisk;
                    import es.xperiments.media.StageWebviewDiskEvent;
                    import mx.core.UIComponent;
                    import flash.media.StageWebView;

                    import spark.events.ViewNavigatorEvent;

                    protected var webView:StageWebViewBridge;

                    protected function view1_addedToStageHandler(event:Event):void
                    {
                            // OPTIONAL BEFORE INIT OPTIONS SETTING
                            StageWebViewDisk.setDebugMode( true );
                            // if we need debug mode assign it before initializaton
                            // StageWebViewDisk Events. First time app launches it proceses the filesystem
                            // As it can take some time, depending of the filesize of the included files
                            // we provide 2 events to know when process start/finish

                            StageWebViewDisk.addEventListener(StageWebviewDiskEvent.START_DISK_PARSING, onDiskCacheStart);
                            StageWebViewDisk.addEventListener(StageWebviewDiskEvent.END_DISK_PARSING, onDiskCacheEnd);
                            StageWebViewDisk.initialize( this.stage );
                    }

                    protected function onDiskCacheStart(e:StageWebviewDiskEvent):void
                    {
                            trace("SWVD parsing started");
                    }

                    protected function onDiskCacheEnd(e:StageWebviewDiskEvent):void {
                            trace("SWVD parsing ended");
                            webView = new StageWebViewBridge(0, 50, 400, 450);
                            webView.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
                            SWVB.addChild(webView);
                    }

                    protected function onAddedToStage(e:Event):void
                    {
                            webView.loadURL("http://www.google.com");
                            //webView.loadLocalURL("applink:/index.html");
                    }

它还提醒我如何处理闪存生成器/ as3项目中的“添加子”错误.首先,我要在舞台上添加一个ui组件.

代码语言:javascript
复制
// container ( IVisualElement ) for DisplayObjects
var container:UIComponent = new UIComponent();
addElement( container );

然后,我们可以将子元素添加到uicomponent中:

代码语言:javascript
复制
container.addChild(webView);

希望这能帮到别人。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25707232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档