使用其中心作为锚点调整面板大小

时间:2011-07-11 13:44:39

标签: flex flex3 flex4 flexbuilder flex4.5

我正在尝试使用调整大小效果来调整面板的大小,使用其中心作为定位点。我一直在谷歌搜索一些信息,我发现的唯一的事情是将horizo​​ntalCenter和verticalCenter设置为0,但这对我不起作用。面板从左上角开始调整大小。

有人能更清楚地解释如何实现这个目标吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

正如Jonathan建议的那样,Panel的父容器可能不使用BasicLayout,而是使用一些液体布局(如VerticalLayout)。当您使用液体布局时,您不能使用绝对位置属性,如'x','y','horizo​​ntalCenter','verticalCenter','left','right','top'或'bottom'。它们将被忽略,这当然是有道理的,因为物体必须相对于彼此布置。

无论如何,这完美无缺:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark">

    <s:states>
        <s:State name="small" />
        <s:State name="big" />
    </s:states>

    <s:transitions>
        <s:Transition>
            <s:Resize target="{panel}" />
        </s:Transition>
    </s:transitions>

    <s:Panel id="panel" horizontalCenter="0" verticalCenter="0"
             width.small="200" height.small="100"
             width.big="400" height.big="200">

        <s:Button label="toggle size" 
                  click="currentState = currentState == 'small' ? 'big' : 'small'" />
    </s:Panel>

</s:Application>