Flex:initialize和creationComplete之间的六秒钟

时间:2011-04-04 19:30:32

标签: flex performance canvas

我正在使用大型Flex应用程序,我注意到我们最大的组件之一(有很多子画布)在initialize和creationComplete事件之间大约需要6秒。我一直在做一些阅读,发现有很多嵌套的画布会导致减速,但我不确定这是否会减速?任何人都有任何关于加快速度的建议,甚至没有确切地确定减速的来源?

3 个答案:

答案 0 :(得分:2)

根据我的经验,具有动态尺寸的嵌套容器是这些类型滞后的最常见原因。有些事要尝试:

  • 尽可能为容器/组件设置明确的尺寸/位置。这减少了在创建过程中框架内发生的令人难以置信的测量量。

  • 减少嵌套容器的数量。听起来很明显,但是当你开始批判性地设置用户界面时,你可以减少多少。具体来说,您是否可以通过简单地为子组件设置显式位置/大小来摆脱HBox和VBox容器?你真的需要使用Form容器吗?

  • 将容器切换到重量轻得多的Spark Group,而不是尽可能使用较重的Canvas。

希望有所帮助。如果没有,请发布一些代码,以便我们深入了解您的具体问题。

答案 1 :(得分:1)

要考虑的最重要的事情是使用VBox和/或HBox代替一些动态生成的x和y。 VBox和HBox效率更高。看看吧!

答案 2 :(得分:1)

一次性将多个显示对象添加到显示列表可能需要很长时间,尤其是当我们讨论混合中具有布局和滚动逻辑的Flex容器时。既然你说你正在使用许多Canvas容器,那肯定是你遇到的问题。

我知道很多开发者滥用creationPolicy属性。通常,它设置为"auto",允许Flex将容器子项的实例化推迟到“稍后”的非常短的时间。通常,在下一帧之前,你甚至都看不出差异。您是否碰巧在该层次结构中的任何位置将creationPolicy设置为"all"?这可能会迫使画布及其子女立即被创作。