如何在Flex中隐藏(不删除)Panel(或任何Container)的内容?

时间:2009-12-04 15:56:15

标签: flex

我正在扩展Panel以构建自定义组件。如果不知道以后会包含什么,我怎样才能添加一个方法来暂时隐藏所有内容并显示内部对象(通常是不可见的)呢?

也就是说,有没有比

更好的方法
for each (var ui:DisplayObject in this.getChildren()) {
  ui.visible = false;
}

我想要做的是更换根内容窗格,但我不知道如何访问它。像这样:

this._tempStore = this.removeChild(this.rootContentPaneObject);
this.rootContentPaneObject = this._myTemporaryReplacement;

实际上,我正在尝试构建一个组件,该组件充当Panel的dropin替代品,但其行为类似于ViewStack

2 个答案:

答案 0 :(得分:1)

也许在您的Panel中放置ViewStack并使用堆栈显示/隐藏适当的内容可能更容易。

答案 1 :(得分:0)

您似乎在寻找Container.contentPane。请注意它是mx_internal,所以我们在这里潜入Flex内部(风险自负......)。

import mx.core.mx_internal;
...
    this.mx_internal::contentPane.visible = false;

接下来的问题是如何添加仍然可见的子项(不在contentPane中)。您可能必须使用Container.rawChildren