标签及其容器的宽度有问题。 我有一个右侧的面板,可以占用尽可能多的空间,在左边的一个VGroup,顶部的宽度为1的面板,将为儿童和底部的1个面板具有相同的宽度宽度为左上图。
在左上方的面板上有一个可以改变宽度的按钮。 在左下方面板上有一个标签,可以将其宽度调整到容器面板,这样,标签就会使断点正确地适合其容器。
它在开始时正常工作,并在按钮的宽度变大时正确调整大小。但是当按钮变为较小的宽度时,左侧面板和组保持与之前相同的尺寸,因此左侧部分仅在需要时变大,而不会减小其宽度。
<fx:Script>
<![CDATA[
protected function buttonClick(event:MouseEvent):void{
button.width= 70+Math.random()*200;
}
protected function vgroupResize():void{}
]]>
</fx:Script>
<s:HGroup width="500" height="500">
<s:VGroup id="vGroup" height="100%" resize="vgroupResize()">
<s:Panel id="leftUp" title="left up" width="100%" height="100%" minWidth="1">
<s:Button id="button" label="button" click="buttonClick(event)"/>
</s:Panel>
<s:Panel id="leftDown" title="left down" width="{leftUp.width}">
<s:Label width="100%" text="nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan"/>
</s:Panel>
</s:VGroup>
<s:Panel title="right" width="100%" height="100%"/>
</s:HGroup>
我发现了两个总是有效的丑陋解决方案,但我想以正确的方式或不太可怕的方式来做到这一点。
一种解决方案是在按钮改变宽度时设置leftDown.width = 1:
protected function buttonClick(event:MouseEvent):void
{
button.width= 70+Math.random()*200;
leftDown.width= 1;
}
其他解决方案是在按钮更改其宽度时移除左下方面板,并在调整VGroup大小时重新添加:
protected function buttonClick(event:MouseEvent):void
{
button.width= 70+Math.random()*200;
if(leftDown.parent!=null) vGroup.removeElement(leftDown);
}
protected function vgroupResize():void
{
if(leftDown.parent==null) vGroup.addElement(leftDown);
}
我希望有人知道这样做的正确方法。
答案 0 :(得分:1)
我根据Sudharsanan建议重做了代码。现在工作正常。
<fx:Script>
<![CDATA[
protected function buttonClick(event:MouseEvent):void
{
button.width= 70+Math.random()*200;
}
]]>
</fx:Script>
<s:HGroup width="500" height="500">
<s:VGroup id="vGroup" width="{leftUp.width==0?1:leftUp.width}" height="100%">
<s:Panel id="leftUp" title="left up" height="100%">
<s:Button id="button" label="button" click="buttonClick(event)"/>
</s:Panel>
<s:Panel id="leftDown" title="left down" width="100%">
<s:Label width="100%" text="nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan"/>
</s:Panel>
</s:VGroup>
<s:Panel title="right" width="100%" height="100%"/>
</s:HGroup>
答案 1 :(得分:0)
我的意见是将vpanel宽度设为可绑定到按钮宽度,如此
<s:HGroup width="500" height="500">
<s:VGroup id="vGroup" width="{button.width + 2}" height="100%" resize="vgroupResize()">
<s:Panel id="leftUp" title="left up" width="100%" height="100%" minWidth="1">
<s:Button id="button" label="button" click="buttonClick(event)"/>
</s:Panel>
<s:Panel id="leftDown" title="left down" width="{leftUp.width}">
<s:Label width="100%" text="nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan n y a n nyan"/>
</s:Panel>
</s:VGroup>
<s:Panel title="right" width="100%" height="100%"/>
</s:HGroup>
这比其他人简单。