2

我有一个专为 1280x800 设计的 Flex 中的 Air 应用程序,我想拉伸它以在 1920x1200 显示器上全屏工作。

我读过这篇文章: http: //blogs.adobe.com/aharui/2008/01/flex_and_scalemodes.html并尝试过,但它只放大左上角(如文章中所述)。

我使用一个 WindowedApplication(如下所示),它包含一个包含所有不同布局元素的视图(称为 MasterView)。

有什么建议么?

我的应用程序(简而言之)如下所示:

<mx:WindowedApplication 
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    width="100%" height="100%"
    horizontalScrollPolicy="off"
    verticalScrollPolicy="off"
    clipContent="false" 
    windowComplete="goFullscreen()" 
    >

private function goFullscreen():void
{                                   
    Mouse.hide();       

    this.stage.scaleMode = StageScaleMode.EXACT_FIT;
    this.stage.align = StageAlign.TOP_LEFT;
    this.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;

    try
    {   
        showStatusBar = false;
        removeChild(statusBar);
    }
    catch (err:Error)
    { }

    root.stage.addEventListener(KeyboardEvent.KEY_DOWN, switchFullScreen)               
}

</mx:WindowedApplication>

谢谢, 加布

4

3 回答 3

5

你想全屏还是最大化窗口?您可以通过调用执行后者:

this.nativeWindow.maximize();

并且在全屏模式下做某事,你不应该需要你所拥有的所有其他东西。你应该只需要打电话

  this.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;

去做你想做的事。那不工作吗?调用该 API 时屏幕是什么样的?

=瑞安

于 2009-09-02T18:03:55.227 回答
2

我也发现这行得通。

public function goFullScreen($fullScreen:Boolean){
        if($fullScreen){
            myStage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
            myStage.scaleMode = StageScaleMode.EXACT_FIT;               
        } else {
            myStage.displayState = StageDisplayState.NORMAL;
        }

    }
于 2011-02-04T17:10:10.403 回答
0

最后我们发现最好的解决方案是手动设置缩放比例。因此,通过确定屏幕/视口的宽度并找出它如何缩放到我们应用程序的大小,我们解决了这个问题。

于 2009-09-17T06:37:38.407 回答