2012-06-28 65 views
0

我一直在尝试使用Adobe Flex/Flash构建器StageWebView呈现网页,但它没有缩放网页以适合手机屏幕尺寸,并且基本上将网页的右侧切掉。我试过使用Adob​​e Flex/Flash Builder 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"/> 

任何帮助将大大感激!

回答

0

我很惊讶,它切断了右手边,而不是底部,因为这就是我想从这个期望:

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事件),以便再次设置视口。

+0

感谢您的建议@micspsm但x y偏移不起作用。我尝试了Event.RESIZE,但不知道我是否正确地做了。屏幕截图:[link] http://nealdrake.com/app-screenshoot.html [link] – user1489333

+0

您是否可以控制您所展示的网页?如果是这样,那么这更多的是调整那里的CSS来支持移动大小的维度,而不是你在Flex中可以实现的任何东西。它从你的截图看起来像StageWebView设置得很好;这是*内容*是问题所在。 – micapam