`
youhao
  • 浏览: 26914 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

导航条容器内置推迟实例化

    博客分类:
  • Flex
阅读更多

本文来自Flex白皮书

      Flex 中的导航条容器(ViewStack、Accordin、TabNavigator)中内置了推迟实例化。默认情况下,推迟实例化意味着 Flex 在启动时不会创建任何子视图,但用户通过导航到该容器可触发所有子视图的创建。下面的代码显示了两个导航条容器 TabNavigator 和 ViewStack 的使用:

	<mx:TabNavigator>
		<mx:VBox id="tabNavView1">
			<mx:LinkBar dataprovider="myViewStack">
				<mx:ViewStack id="myViewStack">
					<mx:VBox id="view1"/>
					<mx:VBox id="view2"/>
					<mx:VBox id="view3"/>
				</mx:ViewStack>
			</mx:LinkBar>
		</mx:VBox>
		<mx:VBox id="tabNavView2">
			
		</mx:VBox>
	</mx:TabNavigator>

TabNavigator 容器创建了 tabNavView1,因为它是 Flex 实例化 TabNavigator 容器时显示的第一个视图。实例化 tabNavView1 导致 LinkBar 和 ViewStack 的第一个视图 view1 被实例化。当用户与 LinkBar 交互以选择 ViewStack 中的另一个视图时,Flex 将创建该视图。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”。

PS:来自www.zengrong.net/?p=353

分享到:
评论

相关推荐

    spring 静态实例化

    在Spring框架中,静态实例化是指在应用程序启动时,即Spring容器初始化过程中创建Bean实例的过程。通常情况下,Spring会根据配置文件中的定义,在应用启动时自动创建和管理Bean实例。这种方式可以确保在应用运行期间...

    使用静态工厂实例化;使用IOC容器实例化上述类,并对属性使用构造方法注入并测试;模拟三层体系结构实现对部门项目的查询、添加和修改

    (2)使用IOC容器实例化上述类,并对属性使用构造方法注入,然后测试。 (3)模拟三层体系结构,为其创建对应的departmentDao、departmentService、departmentController;实现对部门项目的查询、添加和修改。

    实例化Spring bean的两种工厂方法

    在这个例子中,`MyFactory`类需要有一个名为`createBean`的公共方法,Spring容器将调用这个方法来实例化`exampleBean`。 2. **静态工厂方法** 静态工厂方法与实例工厂方法类似,区别在于它不依赖于工厂类的实例,...

    Spring Bean实例化实现过程解析

    在 Spring 框架中,Bean 的实例化是通过容器来管理的,容器会根据配置文件中的信息来实例化 Bean。下面我们将详细介绍 Spring Bean 实例化的实现过程。 1. 构造器实例化 在 Spring 框架中,默认情况下,容器会通过...

    flash 导航条案例

    6. 测试和优化:最后,使用Flash的内置测试器或者发布预览来检查导航条的功能和效果。根据需要调整按钮位置、动画速度或交互逻辑,确保用户友好且功能完备。 在提供的文件"24.fla"中,很可能包含了上述步骤的实例,...

    230117-014shopDemo(内置容器与管道实例集中管理之IEngine)

    //尝试通过指定类的拷贝构造方法,获取该指定类的实例。 foreach (var constructor in type.GetConstructors()) { try { //依次获取拷贝构造方法中所需参数实例。 var parameters = constructor.Get...

    android 滑动页面导航条跟着动

    在Android应用开发中,滑动页面导航条跟随动效是一种常见的设计模式,它为用户提供了一种流畅且直观的界面交互体验。"android 滑动页面导航条跟着动"这个标题所指的就是当用户在使用ViewPager进行页面滑动时,导航条...

    单实例容器编排策略.pptx

    ### 单实例容器编排策略知识点详解 #### 单实例编排简介 - **定义**:单实例编排是指一种容器编排策略,确保每个应用实例作为独立的容器运行,并且这些容器之间没有共享状态。 - **优势**: - **隔离性与可用性**...

    Java WEB 篇八 tomcat 容器是如何创建 servlet 类实例?用到了什么原 理?.xmind

    Java WEB 篇八 tomcat 容器是如何创建 servlet 类实例?用到了什么原 理?

    shared-battery-0.0.1-SNAPSHOT.jar

    构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器实例的jar包构建容器...

    该实例是简单通过反射和Emit实现的一个容器 (IL)

    例如,对于频繁创建的类型,容器可能先通过Emit生成一个工厂方法,然后在后续的实例化过程中直接调用这个工厂,避免了每次反射带来的开销。 这个实例可能包含以下关键部分: 1. **类型注册**:容器需要知道哪些类型...

    Spring容器中IOC

    1. singleton(单例):在容器创建时被实例化。 2. prototype(多例):只有在getBean时被实例化。 FactoryBean是另外一种方式来获取对象实例,通过getBean方法可以取得实体类,实际使用一般是在后期,spring去集成...

    WPF+Mvvmlight 简单的导航实例

    在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)框架结合MvvmLight库创建一个简单的导航实例。MvvmLight是由GalaSoft开发的轻量级MVVM(Model-View-ViewModel)库,它为WPF应用提供了一...

    容器云安全风险分析及防护体系设计.docx

    容器云安全风险分析表明,安全风险涉及容器镜像、仓库、编排工具、实例以及主机操作系统等多个方面。容器镜像可能包含安全漏洞、恶意软件,镜像仓库的认证机制可能不健全,容器编排工具可能导致权限滥用和网络隔离...

    Spring Annotaion Support详细介绍及简单实例

    如果你想实现一些自定义逻辑Spring容器实例化完成后,配置和初始化一个bean,您可以插入一个或多个BeanPostProcessor实现。  您可以配置多个BeanPostProcessor实例,您可以控制的顺序执行这些BeanPostProcessors通过

    第2章 容器和bean的基本原理1

    容器根据bean定义(通常在XML配置文件中)创建bean实例,并负责bean的生命周期管理,包括实例化、初始化、配置、销毁等过程。 Bean的实例化是IoC容器的关键任务,它可以使用不同的方式,如构造器注入、setter注入等...

    Spring之核心容器bean

    在Spring中,bean是一个由容器管理的对象,它的实例化、初始化、装配和销毁都是由Spring容器控制的。你可以通过XML、注解或者Java配置类来定义bean。例如,一个简单的XML配置如下: ```xml ``` 这里,`myBean`...

    在AWS容器服务中使用Spot实例.pdf

    将Spot实例与这些服务结合,用户可以构建一个灵活且成本优化的容器化应用平台。通过在ECS或EKS中配置Spot实例,企业能够以极低的成本扩大计算规模,同时确保在必要时能够快速响应并适应市场变化。 然而,使用Spot...

    这一次搞懂Spring的Bean实例化原理操作

    在Spring中,Bean的实例化是整个IoC(Inversion of Control)容器的核心过程,它涉及到BeanDefinition对象的使用,以及一系列后处理器的调用,包括BeanDefinitionRegistryPostProcessor、BeanFactoryPostProcessor、...

Global site tag (gtag.js) - Google Analytics