导航条容器内置推迟实例化creationPolicy属性
Flex 中的导航条容器(ViewStack、Accordin、TabNavigator)中内置了推迟实例化。默认情况下,推迟实例化意味着 Flex 在启动时不会创建任何子视图,但用户通过导航到该容器可触发所有子视图的创建。
容器标签中的 creationPolicy 属性控制子视图的创建。下面的列表将解释 Flex 导航条容器每个 creationPolicy 属性设置的含义。
• creationPolicy=“auto”
Flex 创建导航条容器时将不会立即创建所有的后代对象,只创建开始时可见的后代对象。这一推迟实例化行为的结果是带有导航条容器的 MXML 应用程序加载很快,但从一个视图浏览至另一视图时,用户将等待短暂的停顿时间。可用性研究表明,与应用程序启动时为创建所有导航条子视图而等待较长时间相 比,这种用户体验更好。同样,用户可能从不访问某些子视图,因而在启动时创建这些子视图会浪费资源。注意,如果在一个非导航条容器上设置 creationPolicy 为“auto”,则必须加入额外的代码来指示何时创建该容器的子对象。这些额外代码已经内置进导航条容器中,因而可在导航条容器上设置 creationPolicy 为“auto”而无需任何额外的工作。
• creationPolicy=“all”
Flex 创建导航条容器时将创建所有子视图中的所有控件。这一设置导致程序启动时有一个延迟,但在视图之间切换的响应时间将会较短。
• creationPolicy=“none”
Flex 将不会实例化导航条容器中或者其子视图中的任何组件,直到实例化方法被显式调用。可用 createComponents() 方法显式地实例化视图。Flex 文档中有更多关于设置自定义组件创建计划的信息。
通过设置 creationPolicy 属性,可手工创建子视图,并决定在应用程序架构的何处发生创建导航条容器子视图所需的资源占用。可用性研究显示,使用 auto 设置可取得较好的用户体验。一个常见的错误会延长应用程序启动时间,即错误地在某一个导航条容器上设定 creationPolicy=“all”。仅当能确保组件创建计划足够高效时可设置 creationPolicy 为“all”。
分享到:
相关推荐
TabNavigator的creationPolicy属性控制子组件的创建时机。auto是默认值,表示在首次访问时创建组件;all表示在加载时创建所有组件;none表示不自动创建任何组件,需手动调用createComponentsFromDescriptors();...
如果组件的`creationPolicy`属性设置为`Auto`或`All`,则会在这个阶段加载所需的资源和服务。 2. 测量阶段(Measurement):组件计算自己的大小,以适应内容和约束。这通过`measure()`方法执行,它允许组件根据内部...
7. **TabNavigator的creationPolicy**:`TabNavigator` 的 `creationPolicy` 属性用于控制其子项的创建策略,如设置为 `lazy` 表示只有在子项首次可见时才会创建它们。 8. **获取当前URL**:可以使用 `Application....
`creationPolicy`属性用于控制组件子元素的实例化策略。设置为`lazy`表示子元素在首次访问时才实例化,这有利于快速加载应用,但可能导致用户交互时的延迟。设置为`auto`则会在组件初始化时立即实例化所有子元素,...
通过 `[PartCreationPolicy(CreationPolicy)]` 来控制类的实例化策略。 在"MEF02"这个示例中,可能包含以下内容: - 多个类或接口被标记为 `[Export]`,表示它们是可扩展的组件。 - 一些类可能使用 `[Import]` 或 ...
<mx:AddChild relativeTo="{loginForm}" position="lastChild" creationPolicy="all"> <!-- 设置面板容器和按钮控件的属性 --> <!-- 移除原有的链接按钮 --> <!-- 添加一个新的链接按钮用于...
1. **定义ViewStack**:在MXML中定义一个`ViewStack`组件,并设置其属性如`creationPolicy`等。 ```xml <mx:ViewStack id="storeViews" width="100%" height="550" creationPolicy="all"> 主页" showEffect=...
实例2中,我们定义了一个`CreationPolicy`策略,它要求包含一个`Create()`函数来创建特定类型的对象。这里给出了三种不同的实现:`OpNewCreator`使用`new`运算符创建对象,`MallocCreator`使用`malloc`分配内存后再...