在Adobe Flex / AIR应用程序中调整应用程序窗口大小时调整容器大小

时间:2011-03-04 13:58:11

标签: flex actionscript-3 flex4 air

我正在开发Adobe AIR应用程序。 “应用程序”窗口的大小为800X600,包含边框容器,边框容器包含许多控件。

我想要的是,如果用户重新调整应用程序的大小,那么该容器也应根据比例重新调整大小。即如果用户最大化或最小化窗口,那么边框容器也应分别最大化或最小化。

3 个答案:

答案 0 :(得分:5)

如果您不想(或因某些原因不能)使用基于百分比的宽度,那么您可以随时在MXML中执行以下操作:

<s:BorderContainer 
    xmlns:mx = "http://www.adobe.com/2006/mxml"
    xmlns:s = "library://ns.adobe.com/flex/spark"

    width = "{parentApplication.width / 2}"
    height = "{parentApplication.height / 2}">

您只是获取对组件的parentApplication的引用,并直接绑定到它的宽度和高度。最后扔任何你想要的数学。

答案 1 :(得分:2)

更简单的方法是让组件声明相对于外部容器的大小/位置。例如,不是设置x,y,width和height,而是在Application组件中设置left,right,top和bottom以及Application中的容器。如果要强制实施最小大小800x600,可以设置minWidth和minHeight属性。希望有所帮助。

答案 2 :(得分:1)

这可以使用MVC框架来完成。一些选项包括RobotLegsMateCairngorm或者可以使用一些快速设计模式并实现自定义版本。

基本上,应检测Application事件Event.RESIZE并将其应用于容器。 stageHeight和stageWidth的属性将提供调整容器大小的必要信息。

在任何情况下,调整大小事件都将遍历显示层次结构,但如果自定义事件或函数应用于控件,则可以方便地在应用程序级别进行拦截。