0

我正在尝试使用 Resize Effect 调整面板的大小,并使用其中心作为锚点。我一直在谷歌搜索一些信息,我发现的唯一一件事就是将水平中心和垂直中心设置为 0,但这对我不起作用。面板不断从上/左角调整大小。

谁能更清楚地解释如何做到这一点?

提前致谢。

4

1 回答 1

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>
于 2011-07-11T13:55:51.027 回答