我正在尝试使用 Resize Effect 调整面板的大小,并使用其中心作为锚点。我一直在谷歌搜索一些信息,我发现的唯一一件事就是将水平中心和垂直中心设置为 0,但这对我不起作用。面板不断从上/左角调整大小。
谁能更清楚地解释如何做到这一点?
提前致谢。
我正在尝试使用 Resize Effect 调整面板的大小,并使用其中心作为锚点。我一直在谷歌搜索一些信息,我发现的唯一一件事就是将水平中心和垂直中心设置为 0,但这对我不起作用。面板不断从上/左角调整大小。
谁能更清楚地解释如何做到这一点?
提前致谢。
正如 Jonathan 所建议的,您的 Panel 的父容器可能不使用 BasicLayout,而是使用一些流动布局(如 VerticalLayout)。当您使用流式布局时,您不能使用绝对位置属性,例如“x”、“y”、“horizontalCenter”、“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>