AS3:当我以编程方式添加组件时,管理mx:VBox中的差距

时间:2013-08-21 21:43:20

标签: actionscript-3 flex mxml vbox

我遇到这种情况:

根节点所在的主要组件。

在这个VBox中我明确了属性verticalGap =“0”。

在创建完成时,我以这种方式添加了很多组件:

var pnlFirstCmp:PnlFirstCmp = new PnlFirstCmp();
this.addElement(pnlFirstCmp);

for (var i:int = 1; i<myArray.length; i++) {
    var pnlOtherCmp:PnlOtherCmp = new PnlOtherCmp();
    this.addElement(pnlOtherCmp);
}
var pnlFooter:PnlFooter = new PnlFooter();
this.addElement(pnlFooter);

现在,问题是: 当我看到我的面板时,我在运行时添加的不同面板中有一些空格。

我错了!?!?!?

My undesiderate gap

评论后编辑: 我的根节点:

<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" 
     creationComplete="vbox1_creationCompleteHandler(event)"
     verticalGap="0">

创作完成:

protected function vbox1_creationCompleteHandler(event:FlexEvent):void
{
    createPanel();
}

PnlFirstCmp(节点根):

<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" 
     verticalGap="0">

PnlOtherCmp(节点根):

<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" 
     verticalGap="0">

PnlFooter(节点根):

<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" verticalGap="0">

如果您想要显示其他位代码,请不要考虑;)

1 个答案:

答案 0 :(得分:2)

我已经解决了。

问题是:根节点中的height =“100%”!

我正在创建面板以进行朗读,如果我移除了高度=“100%”,Flex会根据所有可用高度构建面板,否则会根据所有可用高度进行构建,因此在面板的页脚处添加空白区域。通过这种方式我删除了空格,这样就可以了。谢谢你的帮助Sunil D.&amp;宙斯