导航容器的creationPolicy属性

creationPolicy=“auto”

Flex 创建导航条容器时将不会立即创建所有的后代对象,只创建开始时可见的后代对象。这一推迟实例化行为的结果是带有导航条容器的 MXML 应用程序加载很快,但从一个视图浏览至另一视图时,用户将等待短暂的停顿时间。可用性研究表明,与应用程序启动时为创建所有导航条子视图而等待较长时间相 比,这种用户体验更好。同样,用户可能从不访问某些子视图,因而在启动时创建这些子视图会浪费资源。注意,如果在一个非导航条容器上设置 creationPolicy 为“auto”,则必须加入额外的代码来指示何时创建该容器的子对象。这些额外代码已经内置进导航条容器中,因而可在导航条容器上设置 creationPolicy 为“auto”而无需任何额外的工作。

【注】auto懒加载只会加载一层子对象,若该子对象仍然包含有子对象,此时调用其子对象的子对象会报nullPointerException,可通过手动调用 createComponentsFromDescriptors(true) 方法来创建子项。

 creationPolicy=“all”

Flex 创建导航条容器时将创建所有子视图中的所有控件。这一设置导致程序启动时有一个延迟,但在视图之间切换的响应时间将会较短。

creationPolicy=“none”
Flex 将不会实例化导航条容器中或者其子视图中的任何组件,直到实例化方法被显式调用。可用 createComponents() 方法显式地实例化视图。Flex 文档中有更多关于设置自定义组件创建计划的信息。
通过设置 creationPolicy 属性,可手工创建子视图,并决定在应用程序架构的何处发生创建导航条容器子视图所需的资源占用。可用性研究显示,使用 auto 设置可取得较好的用户体验。一个常见的错误会延长应用程序启动时间,即错误地在某一个导航条容器上设定 creationPolicy=“all”。仅当能确保组件创建计划足够高效时可设置 creationPolicy 为“all”。通过调用 createComponentsFromDescriptors() 方法来创建子项。 ContainerCreationPolicy.QUEUED

将容器添加到创建队列,而不是立即进行实例化和绘制。应用程序处理列队容器时,将创建容器的子项,并等待创建子项后才前进到创建队列中的下一个容器。


摘自:http://hi.baidu.com/lwfqt/blog/item/2f93e73fcc6043ea55e72363.html  

你可能感兴趣的:(Flex)