我正在尝试使用调整大小效果来调整面板的大小,使用其中心作为定位点。我一直在谷歌搜索一些信息,我发现的唯一的事情是将horizontalCenter和verticalCenter设置为0,但这对我不起作用。面板从左上角开始调整大小。
有人能更清楚地解释如何实现这个目标吗?
提前致谢。
答案 0 :(得分:1)
正如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>