2014-03-01 34 views
1

我想在带有Retina显示屏的Macbook Pro上使用AIR运行双屏应用程序。SHOW_ALL变得太大而不是缩放

在我的左侧屏幕(视网膜)上有一种控制台,您可以用它选择一部电影,在右侧屏幕上显示选定的电影。

通常,我使用StageScaleMode.SHOW_ALL将其很好地带到全屏。但是这一次,它的规模太大了。也许100倍太大了。我只看到电影的一个小左上角。它只显示正确的大小,如果我选择StageScaleMode.NO_SCALE;

有没有人猜测为什么它是这样的?

这里是代码的一部分,在那里我调出两个窗口并尝试全屏显示它。

public function setToFullscreen(e:Event):void { 

        startTimer.stop(); 
        startTimer.removeEventListener("timer", setToFullscreen); 
        windowBig = new NativeWindow(new NativeWindowInitOptions()); 
        windowBig.width = 1870; 
        windowBig.height = 468; 
        windowBig.stage.displayState = StageDisplayState.FULL_SCREEN; 
        windowBig.stage.scaleMode = StageScaleMode.SHOW_ALL; 



        windowBig.stage.align  = StageAlign.TOP_LEFT; 
        windowBig.title = "Second Screen Window"; 


        windowSmall = stage.nativeWindow; 
        windowSmall.width = 1280; 
        windowSmall.height = 1024; 
        windowSmall.stage.scaleMode = StageScaleMode.NO_SCALE; 
        windowSmall.stage.align  = StageAlign.TOP_LEFT; 

        windowSmall.title = "First Screen Window"; 




        ScreenManager.openWindowFullScreenOn(windowBig,2); 

        loader.load(); 

          } 

谢谢你的帮忙!

+0

好吧,这看起来像它说明内容问题的比例:http://helpx.adobe.com/x-productkb/multi/nativewindow- content-scaling-issues-air.html 但是现在如何做SHOW_ALL ??? – nbuechi

回答

1

就像OP说的那样,它不可能自动使用SHOW_ALL,但可以手动完成(在这里它不完全像SHOW_ALL:我只适合窗口高度的内容,所以它适用于窗口纵横比等于或更大比含量比,其他内容将被裁剪):

newWindow.addEventListener(Event.RESIZE, onResize); 

function onResize(e:Event):void 
{ 
    content.height = newWindow.stage.stageHeight; // fit to height 
    content.scaleX = content.scaleY; // keep width ratio 

    // Extra: equivalent of StageAlign.TOP => centers horizontally 
    // (assuming a content registration point at top-left) 
    var contentRatio = 4/3; // in case content is wider than necessary, e.g. wide background 
    content.x = newWindow.stage.stageWidth/2 - (content.height * contentRatio)/2; 
}