Flex:为什么mx.core.Container总是不使用'contentPane'?

时间:2010-03-23 20:21:57

标签: flex

为什么mx.core.Container有时使用contentPane,但有时不使用{{3}}?

或者,换句话说,如果某些复杂的逻辑决定将它们放在那里,Container的孩子怎么只被放入contentPane?为什么不简单地将所有孩子都放在contentPane

2 个答案:

答案 0 :(得分:0)

如果内存服务,在sdk中添加child()(可能是一个继承的方法)将是你的答案。它与风格有关,因为我不是谈论风格的人,我把这个答案变成了一个社区维基,不能说我做过这个......

答案 1 :(得分:0)

内容窗格是一个简单的显示对象,容器在内部使用它来托管子项,但仅在启用滚动时。所以这就是孩子们“有时”被放置在内容窗格中的原因。 :)

然后移动此内容窗格,这就是容器滚动的方式。

将'scrollContent'切换为ON和OFF时,Flex会将子容器从容器本身移动到内容窗格,反之亦然。在第一次移动到内容窗格之前,它会创建窗格。

同样重要的是,这个过程对用户是透明的,即在添加/删除子节点时,容器负责将它们放在哪里(到容器本身或内容窗格)。另请注意,布局机制在两种情况下都以相同的方式对子项进行操作(使用或不使用内容窗格)。

现在回答“为什么不简单地将所有孩子都放在contentPane?”。

性能!我们总是倾向于最小化应用程序中的组件数量,那么为什么在每个容器中都使用内容窗格,而只有少量容器将scrollContent设置为true?普通Flex应用程序中的大多数容器只是将其子项分组为水平或垂直方式。