全屏居中 AIR 应用程序

Posted

技术标签:

【中文标题】全屏居中 AIR 应用程序【英文标题】:Centering AIR application with fullscreen 【发布时间】:2011-05-13 12:50:04 【问题描述】:

我有一个在 AIR /AS 3.0 中开发的应用程序.. 我想全屏运行应用程序,所有内容都集中在窗口中。 我试着用

做全屏
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE  

但结果我的所有组件都没有根据需要在屏幕上居中(全屏时),它们被截断或不在屏幕上。 基本上,该应用程序是在大约 1024x768 的较低分辨率下开发的......但现在它需要全屏运行。此外,应用程序在运行时加载各种模块,它们似乎也不以全屏为中心。当应用程序退出全屏时,它也会显示应用程序窗口的滚动条..

编辑:添加代码:

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
          layout="absolute"  >

     <Application:ApplicationStartContainer id="aps"  >

               <mx:ModuleLoader id="moduleLoader"/>    

     </Application:ApplicationStartContainer>            

</mx:WindowedApplication>

启动时,应用程序进入全屏状态,模块加载器加载模块/swfs 大小为 1024*768 ,但当前所有加载的模块都对齐到 x=0 和 y=0。

有什么想法吗?

谢谢大家。

【问题讨论】:

【参考方案1】:

在显示对象容器中布局所有显示对象 - 作为新精灵的子项,并侦听全屏事件以使显示对象容器居中。

stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenEventHandler);

//assuming the registration point of 'container' is top-left
function fullScreenEventHandler(evt:FullScreenEvent):void
     
     container.x = stage.stageWidth / 2 - container.width / 2;
     container.y = stage.stageHeight / 2 - container.height / 2;
     

请注意,进入和离开全屏模式时都会调度全屏事件。

【讨论】:

基本上容器有一个加载各种模块的模块加载器..我希望加载的模块位于应用程序的中心。每当屏幕全屏时,模块加载器都会粘在左上角(x=0和 y=0) 的屏幕..而不是在 screen.modules 中居中具有与容器相同的大小..1024 x 768 正确,因此使用相同的方法将您的模块加载器而不是容器居中。 moduleLoader.x = stage.stageWidth / - moduleLoader.width / 2;等

以上是关于全屏居中 AIR 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Adobe AIR 全屏(OS X Mavericks)菜单栏

as3 AIR Win- 在全屏窗口中防止 ALT+空格键

显示全屏,内容上下居中

居中,在 flexbox 全屏内

iPhone - 为啥全屏不起作用,但它适用于 iPad?

响应式图像全屏和居中 - 保持纵横比,不超过窗口