`
youhao
  • 浏览: 27057 次
  • 性别: 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

分享到:
评论

相关推荐

    用CSS设计的纵向导航条实例.rar

    用CSS设计的纵向导航条实例

    使用静态工厂实例化;使用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"中,很可能包含了上述步骤的实例,...

    android 滑动页面导航条跟着动

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

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

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

    单实例容器编排策略.pptx

    ### 单实例容器编排策略知识点详述 #### 一、单实例编排简介 - **定义**: 单实例编排是一种容器管理策略,确保每个应用程序实例作为一个独立的容器运行,不共享状态。 - **优点**: - 提升应用程序的隔离性与可用...

    shared-battery-0.0.1-SNAPSHOT.jar

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

    Qt5自定义实例化的QToolTip

    在实际编程中,我们需要在主窗口或者对应的控件类中实例化CustomToolTip,并在需要显示提示的地方调用其show()方法,传入相应的数据,如好友信息。此外,可能还需要处理窗口的关闭事件,确保用户点击关闭按钮或离开...

    Spring容器中IOC

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

    WPF Prism页面导航实例(Bootstrapper,Shell,Module,Region,Navigation使用)

    总结,WPF Prism的页面导航实例涉及了从启动到用户界面的各个层面,包括Bootstrapper的初始化、Shell的构建、模块化设计、Region的管理和Navigation的实现。通过理解并掌握这些概念,开发者可以构建出更加灵活、可...

    容器云安全风险分析及防护体系设计.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`...

    WPF多页面Page导航实例

    本实例主要关注如何使用WPF中的Frame控件来实现在多个Page之间进行切换,这在构建复杂的用户界面时非常有用。WPF是.NET Framework的一部分,提供了一套强大的工具来设计和构建桌面应用程序。 首先,让我们深入了解...

    比print功能更强大的内置模块pprint使用实例

    比print功能更强大的内置模块pprint使用实例

Global site tag (gtag.js) - Google Analytics