全屏居中 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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章