我正在设计一个带有 Adobe Flash CS6 的桌面应用程序,使用 air 3.2 for desktop(在 Flash 目标设置中)。在空中设置中,有一个高级选项卡,可以设置应用程序窗口位置的初始值。我不知道我应该如何将它设置到屏幕中间。
这是一个屏幕截图:
我正在设计一个带有 Adobe Flash CS6 的桌面应用程序,使用 air 3.2 for desktop(在 Flash 目标设置中)。在空中设置中,有一个高级选项卡,可以设置应用程序窗口位置的初始值。我不知道我应该如何将它设置到屏幕中间。
这是一个屏幕截图:
不要使用这些属性,只需将代码添加到您的应用程序:
stage.nativeWindow.x = (Capabilities.screenResolutionX - this.width)*0.5;
stage.nativeWindow.y = (Capabilities.screenResolutionY - this.height)*0.5;
对于基于 HTML/JS 的 AIR 项目,您可以使用:
window.moveTo(Math.round((window.screen.availWidth - window.outerWidth) / 2), Math.round((window.screen.availHeight - window.outerHeight) / 2));
var screenBounds:Rectangle = Screen.mainScreen.bounds;
stage.nativeWindow.x = (screenBounds.width - stage.nativeWindow.width) / 2;
stage.nativeWindow.y = (screenBounds.height - stage.nativeWindow.height) / 2;
为我工作
如果您使用 FlashBuilder 或 WindowedApplication 的 MXML 文件,您可以在初始化处理程序中这样做。这使用从 nativeWindow 的边界读取的应用程序的初始尺寸(在 application.xml 文件中定义)。[MXML 文件内容]
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:local="*"
initialize="windowedapplication1_initializeHandler(event)"
>
<fx:Script>
<![CDATA[
protected function windowedapplication1_initializeHandler(event:FlexEvent):void
{
var w:int = Capabilities.screenResolutionX;
var h:int = Capabilities.screenResolutionY;
nativeWindow.x = (w - nativeWindow.bounds.width)*0.5;
nativeWindow.y = (h - nativeWindow.bounds.height)*0.5;
}
]]>
</fx:Script>
</s:WindowedApplication>