【发布时间】:2013-05-24 06:58:16
【问题描述】:
这是一个非常笼统的问题。 在 flex 中的重型 mxml 中,我需要添加一些 ui,这些 ui 将根据用户的操作显示为隐藏。
我想纯粹从性能角度知道哪个更好
使用 addChild 和 removeChild
或
将 visible 和 includeInLayout 属性设置为 true 和 false?
【问题讨论】:
标签: apache-flex
这是一个非常笼统的问题。 在 flex 中的重型 mxml 中,我需要添加一些 ui,这些 ui 将根据用户的操作显示为隐藏。
我想纯粹从性能角度知道哪个更好
使用 addChild 和 removeChild
或
将 visible 和 includeInLayout 属性设置为 true 和 false?
【问题讨论】:
标签: apache-flex
从性能角度来看,添加/删除更好,因为 LayoutManager 不需要占用对象。即使您使用includeInLayout,仍然会保存对该对象的引用。
【讨论】:
addChild 和removeChild 实际上是非常繁重的进程,在大多数情况下不应用作visible 的替代品。如果您需要以某种频率打开和关闭某些东西,您应该使用visible,它不会渲染该对象(节省运行时间),而不是添加/删除会增加时间。唯一应该使用 removeChild 的情况是,如果您不希望它在不久的将来任何时候返回屏幕。
确实会有一些函数仍在处理您的 DisplayObject,所以您必须问自己的问题是:
重新创建 DisplayObject 所花费的时间是否大于如果它被隐藏时会发生的少量处理?这个问题非常主观。还要考虑您必须多久添加一次。
尝试这两种方法并使用分析器将帮助您确定这一点。
【讨论】: