【问题标题】:Adobe Flex / Flash Builder StageWebView not scaling to webpage width.Adobe Flex / Flash Builder StageWebView 未缩放到网页宽度。
【发布时间】:2012-06-28 17:38:20
【问题描述】:

我一直在尝试使用 Adob​​e Flex / Flash 构建器 StageWebView 呈现网页,但它没有缩放网页以适应手机屏幕尺寸,并且基本上切断了网页的右侧。我试过使用

<meta name="viewPort" content="width=device-width; initial-scale=1.0;
            maximum-scale=1.0; user-scalable=no;" />

这没有奏效。下面是我目前正在使用的 Flex 代码。

<?xml version="1.0" encoding="utf-8"?>

<fx:Script>
    <![CDATA[
        import flash.media.StageWebView;
        import flash.net.URLRequest;
        import spark.events.ViewNavigatorEvent;

        protected var webView:StageWebView = new StageWebView();
        protected var openBrowser:Boolean = false; 


        protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void
        {
            if (StageWebView.isSupported)
            {
                currentState = "normal";
                webView.stage = stage;
                webView.viewPort = new Rectangle(0,75,stage.stageWidth,stage.stageHeight);
                webView.addEventListener(LocationChangeEvent.LOCATION_CHANGE,onURLChange);    
                webView.loadURL("http://nealdrake.com/mls.html");    
                addEventListener(ViewNavigatorEvent.REMOVING,onRemove);
            }
            else {
                currentState = "unsupported";
                lblSupport.text = "StageWebView feature not supported";
            }    
        }

        protected function onURLChange(event:LocationChangeEvent):void
        {
            trace("URL change");
            // Uncomment the following line to load in the default browser instead... 
            //navigateToURL(new URLRequest(event.location));
        }

        protected function onRemove(event:ViewNavigatorEvent):void
        {
            this.webView.dispose();
        }
    ]]>
</fx:Script>

<s:states>
    <s:State name="normal"/>
    <s:State name="unsupported"/>
</s:states>

<s:Label id="lblSupport" includeIn="unsupported" width="95%" horizontalCenter="0" verticalCenter="0"/>

任何帮助将不胜感激!

【问题讨论】:

    标签: apache-flex flash-builder


    【解决方案1】:

    我很惊讶它切断了右侧而不是底部,因为这是我所期望的:

    webView.viewPort = new Rectangle(0,75,stage.stageWidth,stage.stageHeight);

    您需要计算宽度和高度中的任何 X 或 Y 偏移量,如下所示:

    webView.viewPort = new Rectangle(0,75,stage.stageWidth,stage.stageHeight - 75);

    可能是您的 StageWebView 在您的应用大小正确之前被初始化。尝试添加一个重新设置视口的调整大小处理程序(在上面的代码取自的任何组件上侦听 Event.RESIZE 事件)。

    【讨论】:

    • 感谢@micspsm 的建议,但 x y 偏移不起作用。我尝试了 Event.RESIZE 但不确定我是否正确完成了它。截图:[链接]nealdrake.com/app-screenshoot.html[链接]
    • 您可以控制正在显示的网页吗?如果是这样,那么这更多的是调整那里的 CSS 以支持移动尺寸的尺寸,而不是你可以在 Flex 中实现的任何东西。从您的屏幕截图看起来,StageWebView 设置得很好; 内容才是问题所在。
    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2011-10-16
    相关资源
    最近更新 更多