Apache flex 在Flex面板中隐藏内容窗格
我正在Flex3.2中编写一个自定义组件,它扩展了panel组件。用户执行某个操作后,我希望隐藏面板组件中的主要内容区域,以及控制栏(如果指定了)。有什么办法吗?controlBar.visible似乎并没有隐藏控制栏,除了遍历主面板的所有子级之外,我不知道还有其他简单的方法可以访问主内容区域,如果可能的话,我希望避免这种情况。谢谢您不能设置一个主容器,无论是HBox还是VBox等等。。。在包含所有子级的面板中,可以根据用户的操作切换此容器的可见性Apache flex 在Flex面板中隐藏内容窗格,apache-flex,actionscript-3,flex3,Apache Flex,Actionscript 3,Flex3,我正在Flex3.2中编写一个自定义组件,它扩展了panel组件。用户执行某个操作后,我希望隐藏面板组件中的主要内容区域,以及控制栏(如果指定了)。有什么办法吗?controlBar.visible似乎并没有隐藏控制栏,除了遍历主面板的所有子级之外,我不知道还有其他简单的方法可以访问主内容区域,如果可能的话,我希望避免这种情况。谢谢您不能设置一个主容器,无论是HBox还是VBox等等。。。在包含所有子级的面板中,可以根据用户的操作切换此容器的可见性 至于控制栏,您应该能够更改其可见性值…您无法隐
至于控制栏,您应该能够更改其可见性值…您无法隐藏控制栏的原因,是因为您只设置了它的visible属性-它仍然占用了它的空间。因此,要真正“隐藏”它,请执行以下操作: myControlBar.includeInLayout=false 此外,要隐藏所有子对象,只需要一个简单的循环:
for each (var oChild:DisplayObject in idPanel.getChildren()) {
oChild.visible = false;
}
因此,整个应用程序将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function doit(): void {
idControl.visible = false;
idControl.includeInLayout = false;
for each (var oChild:DisplayObject in idPanel.getChildren()) {
oChild.visible = false;
}
}
]]>
</mx:Script>
<mx:Button x="10" y="10" label="Button" click="doit()"/>
<mx:Panel x="83" y="10" width="250" height="200" layout="absolute" id="idPanel">
<mx:CheckBox x="10" y="10" label="Checkbox"/>
<mx:DateField x="10" y="40"/>
<mx:ControlBar id="idControl">
</mx:ControlBar>
</mx:Panel>
</mx:Application>
希望有帮助 完成此操作后,还可以调整面板的大小。另一个想法可能是使用mx:State,在其中仅设置项的状态就可以隐藏/显示它的所有子项。