actionscript-3 - as3 htmlloader



FB 4.6을 사용하여 stagewebviewbridge 인스턴스를 스테이지에 추가하려면 어떻게해야합니까? (1)

플래시 빌더 4.6에서 다음 코드를 사용하여 (안드로이드 및 ios 용 테스트 모바일 앱으로 stagewebview를 stagewebviewbridge로 대체하여 자바 스크립트 통신 이점을 활용하려고 시도 함) ...

이 코드는 문서에서 직접 나온 것으로 곧장 앞으로 나올 것으로 보이지만 webview 인스턴스가 표시되지 않고 "END_DISK_PARSING"이 콘솔에 표시되는 곳까지만 추적 할 수있는 것 같습니다.

어떤 이유로 든 onDeviceReady 함수가 DEVICE_READY 이벤트 리스너에 의해 호출되지 않습니다 ...

그것은 어떤 오류를 생성하지 않으며 콘솔은 "End_Disk_Parsing"만을 보여줍니다. FB 4.6 프리미엄, flex sdk 버전 4.12를 사용하는 Im, android 장치 (HTC One)에서 테스트하고 -app.xml 파일에 지정된 인터넷에 대한 권한을 얻으려고합니다.

SWVBridge에 익숙한 사람이라면 무엇을해야할까요?

필자는 기본 stagewebview 톤을 사용했으며 그 방법이 무엇인지 잘 알고 있지만, 지금까지 stagewebviewbridge를 사용하여 스테이지에서 눈에 보이는 결과를 얻지 못했습니다 ...

다음과 같이 사용하여 코드 :

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 );
            }

신선한 밤의 잠과 커피 잔 후에 이것을 해결했습니다.

이 코드는 나를 위해 잘 작동합니다.

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 구성 요소'를 추가해야합니다 ...

// container ( IVisualElement ) for DisplayObjects
var container:UIComponent = new UIComponent();
addElement( container );

그런 다음 uicomponent에 자식을 추가 할 수 있습니다.

container.addChild(webView);

희망이 다른 사람을 도와줍니다.