Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在Flex面板中隐藏内容窗格_Apache Flex_Actionscript 3_Flex3 - Fatal编程技术网

Apache flex 在Flex面板中隐藏内容窗格

Apache flex 在Flex面板中隐藏内容窗格,apache-flex,actionscript-3,flex3,Apache Flex,Actionscript 3,Flex3,我正在Flex3.2中编写一个自定义组件,它扩展了panel组件。用户执行某个操作后,我希望隐藏面板组件中的主要内容区域,以及控制栏(如果指定了)。有什么办法吗?controlBar.visible似乎并没有隐藏控制栏,除了遍历主面板的所有子级之外,我不知道还有其他简单的方法可以访问主内容区域,如果可能的话,我希望避免这种情况。谢谢您不能设置一个主容器,无论是HBox还是VBox等等。。。在包含所有子级的面板中,可以根据用户的操作切换此容器的可见性 至于控制栏,您应该能够更改其可见性值…您无法隐

我正在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,在其中仅设置项的状态就可以隐藏/显示它的所有子项。