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

5t7ly7z5  于 2022-11-01  发布在  Apache
关注(0)|答案(3)|浏览(166)

我正在处理一个Adobe AIR应用程序。应用程序窗口的大小是800X600,它包含边框容器,边框容器包含许多控件。
我想要的是,如果用户重新调整应用程序的大小,那么容器也应该根据比例重新调整大小。即,如果用户最大化或最小化窗口,那么边界容器也应该分别最大化或最小化。

qqrboqgw

qqrboqgw1#

如果您不想(或由于某种原因而无法)使用基于百分比的宽度,则可以始终在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的引用,并直接绑定到它的宽度和高度。在最后抛出您想要的任何数学运算。

q35jwt9p

q35jwt9p2#

更简单的方法是让您的组件声明其相对于外部容器的大小/位置。例如,不要设置x、y、宽度和高度,而是在应用程序组件中设置left、right、top和bottom以及应用程序中的容器。如果您希望强制最小大小为800 x600,可以设置minWidth和minHeight属性。希望这对您有所帮助。

rsaldnfx

rsaldnfx3#

这可以使用MVC框架来实现。一些选项包括RobotLegsMateCairngorm,或者可以使用一些快速设计模式并实现一个自定义版本。
本质上,应该检测Application事件Event.RESIZE并将其应用于容器。stageHeight和stageWidth属性将给予调整容器大小所需的信息。
在任何情况下,调整大小事件都将遍历显示层次结构,但如果自定义事件或函数应用于控件,则在应用程序级别进行拦截会很方便。

相关问题