AS3如何在移动设备上运行时停止StageWebView拉伸

时间:2014-03-06 19:30:13

标签: actionscript-3 flash actionscript air stagewebview

我正在制作Adobe Air应用程序。当我在flash中运行我的应用程序时,我的StageWebView对象位于x0,y0我想要的方式。在Flash中编译时,StageWebview内容占用320px乘以50px。闪光灯阶段是480x800。

当我在移动设备上编译并运行我的应用程序时,即使Air原始大小和手机分辨率为480x800,StageWebview也会被拉伸并从屏幕右侧泄漏。 StageWebView内容还获取滚动条以查看所有内容。

如何让我的设备版本显示为我的Flash预览版?

Flash代码

imports
import flash.events.Event;
import flash.events.LocationChangeEvent;
import flash.geom.Rectangle;
import flash.media.StageWebView;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import flash.events.TouchEvent;

// setup variables
var _stageWebView:StageWebView;
var myAdvertURL:String = "website link here";
//

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT

function createAd():void {
  // check that _stageWebView doersn't exist
  if (! _stageWebView) {
    _stageWebView = new StageWebView () ;
    // set the size of the html 'window'
    _stageWebView.viewPort = new Rectangle(0,0,320,50);
    // add a listener for when the content of the StageWebView changes
    _stageWebView.addEventListener(LocationChangeEvent.LOCATION_CHANGING,onLocationChange);
    // start loading the URL;
    _stageWebView.loadURL(myAdvertURL);

  }
  // show the ad by setting it's stage property;
  _stageWebView.stage = stage;
}

function onLocationChange(event:LocationChangeEvent):void {
  // check that it's not our ad URL loading
  if (_stageWebView.location != myAdvertURL) {
    // stop the content from loading within StageWebView
    event.preventDefault();
    // Launch a normal browser window with the captured  URL;
    navigateToURL( new URLRequest( event.location ) );
  }
}

createAd();

HTML

    <!DOCTYPE html>
    <html>

    <head>
    <link href="layout-style-admob.css" rel="stylesheet" type="text/css" >
    <title>Admob</title>
    </head>

    <body>

    <script async src="xxxxxxx.js"></script>
    <!-- mobiletestad2 -->
    <ins class="adsbygoogle"
         style="display:inline-block;width:320px;height:50px"
     data-ad-client="xxxxxxxxxxx"
     data-ad-slot="xxxxxxxxx"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

CSS

html,body {

}

body {
    min-width:320px;
    max-width:320px;
    width:320px;
    min-height:50px;
    max-height:50px;
    height:50px;

    margin:0px;
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

使用stage.stageWidthstage.stageHeight

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

您可能还需要听取方向更改事件并相应地更新视口。

有关详细信息,请参阅this answer