2011-03-04 85 views
3

我正在使用Adobe AIR应用程序。 “应用程序”窗口上的大小为800X600,包含边框容器,边框容器包含许多控件。我想要的是如果用户重新调整应用程序的大小,那么该容器也应根据规模重新调整大小。即如果用户最大化或最小化窗口,那么边界容器也应该分别被最大化或最小化。请尽快帮助我。提前致谢。在Adobe Flex/AIR应用程序调整应用程序窗口大小时调整容器的尺寸

回答

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

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

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

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

+1

您还可以通过让容器层次结构中的所有显示子项扩展处理resize事件的类来节省时间。事件传播允许事件通过并拦截组件中的每个显示对象。在所有容器的相关对象中利用事件传播将是高效的。 – Pythovore 2011-03-04 14:11:30

2

更简单的方法是让组件声明它们相对于它们外部容器的大小/位置。例如,不是设置x,y,宽度和高度,而是在应用程序组件中设置左侧,右侧,顶部和底部以及应用程序中的容器。如果您想要强制实现800x600的最小尺寸,则可以设置minWidth和minHeight属性。希望有所帮助。

相关问题