1、全屏、缩放模式和对齐选项的设置


在主Application中获取stage

要使用[this.]systemManager.stage,而不是[this.]stage,因为在Application的initialize和creationComplete事件处理函数中,Application的stage都为null!


设置全屏

可以在Application的creationComplete事件处理函数中,设置

systemManager.stage.displayState=StageDisplayState.FULL_SCREEN_INTERACTIVE;


设置Application为整体缩放

可以在Application的creationComplete事件处理函数中,设置

systemManager.stage.align="";//默认为"noScale",设置为""(空字符串)会使用水平垂直居中对齐,注:不能设为null

systemManager.stage.scaleMode=StageScaleMode.SHOW_ALL|StageScaleMode.NO_BORDER|StageScaleMode.EXACT_FIT;

Application默认的缩放模式是StageScaleMode.NO_SCALE,对齐方式是StageAlign.TOP_LEFT。也就是说,因为Flex主要是制作Web应用,所以大多数情况下的需求是,根据浏览器的尺寸来手动布局所有页面元素,而不是整体缩放。


设置swf的尺寸

在主Application中添加 元数据标签 

<fx:Metadata>
    [SWF (width=800,height=600)]
</fx:Metadata>

或在编译器-附加的编译器参数中 添加 -default-size 800 600  省略则默认设置为500×375


桌面Flex程序设置窗口尺寸+全屏+整体缩放

1、app.xml中设置initialWindow-width | height 节点值,省略设置,则默认为508×409,内容区域尺寸为500×375

2、在Application中设置 Metadata 元数据,或在编译器-附加的编译器参数中 添加 -default-size 宽 高,默认为500×375

3、Application的creationComplete事件处理函数中设置

systemManager.stage.displayState、systemManager.stage.stageAlign、systemManager.stage.scaleMode

4、Application的creationComplete事件处理函数中添加

this.width=systemManager.stage.stageWidth;

this.height=systemManager.stage.stageHeight;

注意4必须写在3后面

添加以上代码才能保证Flex桌面程序,在整体缩放并全屏时,Flash内容能正确缩放到页面尺寸。


因为Flex桌面程序在整体缩放模式中全屏时

systemManager.stage.stageWidth和systemManager.stage.stageHeight分别为app.xml中设置的width和height值,Flash内容的初始大小为Application中元数据声明的大小(默认为app.xml设置的宽高尺寸-500×375),而Application的width和height默认是当前Flash的显示尺寸(全屏时为显示器屏幕尺寸),如果没有设置第4步,因为Application全屏时width,height是显示器屏幕尺寸大小(可能大于或小于app.xml中设置的宽高值),而systemManager.stage.stageWidth | stageHeight是app.xml中设置的width和height,就会出现,虽然程序全屏,但Flash内容区域却小于或大于显示器屏幕尺寸,小于屏幕尺寸时,周围区域由Flash背景色填充的现象。

wKioL1RN_r6gclWQAABnwM1ACP4861.jpg