ActionScript 值可以是
ContainerCreationPolicy.AUTO
、ContainerCreationPolicy.ALL
、ContainerCreationPolicy.NONE
ContainerCreationPolicy.QUEUED
。
或
MXML 值可以是
"auto"
、"all"
、"none"
或
"queued"
。
如果没有为容器指定 creationPolicy
,则该容器将继承其父项的 creationPolicy
。如果没有为 Application 指定 creationPolicy
,则默认为
ContainerCreationPolicy.AUTO
。
ContainerCreationPolicy.AUTO
的 creationPolicy
意味着容器将延迟创建部分或全部后代,直到需要它们时为止。此进程称为延迟实例化
。此策略能使启动时间达到最佳,因为最初只创建很少的
UIComponent。但是,当用户首次导航到应用程序的其它部分时,这将引入导航延迟。导航器容器(如 Accordion、TabNavigator 和
ViewStack)通过立即创建其所有子项实现 ContainerCreationPolicy.AUTO
策略,但要等到子项成为导航器容器的所选子项时才创建该子项的更深层的后代。
ContainerCreationPolicy.ALL
的 creationPolicy
意味着导航器容器会立即创建每个子项的更深层的后代,而不必等待选择该子项。
对于单一视图容器(如 VBox
容器),ContainerCreationPolicy.AUTO
和
ContainerCreationPolicy.ALL
策略没有区别。
ContainerCreationPolicy.QUEUED
的 creationPolicy
意味着要将容器添加到创建队列,而不是立即进行实例化和绘制。应用程序处理列队容器时,将创建容器的子项,并等待创建子项后才前进到创建队列中的下一个容器。
ContainerCreationPolicy.NONE
的 creationPolicy
意味着容器不创建其子项。在这种情况下,由 MXML 作者负责通过调用
createComponentsFromDescriptors()
方法来创建子项。
notice:使用auto是你可能会莫名其妙的发现程序报错,如无法引用空对象的属性或方法等。那就很可能是在初始化过程中使用到了尚未加载部分的对象。
分享到:
相关推荐
7. **TabNavigator的creationPolicy**:`TabNavigator` 的 `creationPolicy` 属性用于控制其子项的创建策略,如设置为 `lazy` 表示只有在子项首次可见时才会创建它们。 8. **获取当前URL**:可以使用 `Application....
实例2中,我们定义了一个`CreationPolicy`策略,它要求包含一个`Create()`函数来创建特定类型的对象。这里给出了三种不同的实现:`OpNewCreator`使用`new`运算符创建对象,`MallocCreator`使用`malloc`分配内存后再...
`creationPolicy`属性用于控制组件子元素的实例化策略。设置为`lazy`表示子元素在首次访问时才实例化,这有利于快速加载应用,但可能导致用户交互时的延迟。设置为`auto`则会在组件初始化时立即实例化所有子元素,...
通过 `[PartCreationPolicy(CreationPolicy)]` 来控制类的实例化策略。 在"MEF02"这个示例中,可能包含以下内容: - 多个类或接口被标记为 `[Export]`,表示它们是可扩展的组件。 - 一些类可能使用 `[Import]` 或 ...
2. 控制`creationPolicy`:根据需求动态加载组件,减少初始化时的资源消耗。 3. 重写生命周期方法:根据需求覆盖默认行为,例如在`measure()`或`updateDisplayList()`中优化组件的大小和位置计算。 了解并掌握Flex...
TabNavigator的creationPolicy属性控制子组件的创建时机。auto是默认值,表示在首次访问时创建组件;all表示在加载时创建所有组件;none表示不自动创建任何组件,需手动调用createComponentsFromDescriptors();...
5. **推迟实例化**:通过调整组件的"creationPolicy"属性,可以延迟非必需组件的实例化,直到实际需要时才创建,这样可以减少启动时的内存占用和加载时间。 6. **内存释放优化**:在Flex编程中,确保正确管理内存至...
1. **创建URLRequest对象**:首先创建一个URLRequest对象,并设置目标URL。 ```as3 var url:String = "http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html"; var request:URLRequest = new URLRequest(url); ...