包 | mx.core |
接口 | public interface IDeferredInstance |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
getInstance()
方法时创建一个特定实例值,并在随后调用 getInstance()
方法时返回对该值的引用。
当 Flex 编译器遇到为 IDeferredInstance 类型的属性分配值的 MXML 时,将执行以下自动强制操作:
- 如果为 IDeferredInstance 类型的属性分配的值是代表类的 MXML 子标签(如组件标签),则编译器将创建 IDeferredInstance 实现,该实现的
getInstance()
方法返回类的一个实例,该实例按 MXML 代码中指定的内容进行配置。下例显示了这种格式;在本示例中,MyComp 是自定义组件,包含 IDeferredInstance 类型的名为 myDeferredInstanceProperty 的变量。编译器生成 IDeferredInstance1 实现,其getInstance()
方法返回 Label 类的实例,其文本属性设置为“This is a deferred label”:<MyComp> <myDeferredInstanceProperty> <Label text="This is a deferred label"/> </myDeferredInstanceProperty> </MyComp>
- 如果为 IDeferredInstance 类型的属性非配的是文本字符串,则编译器会将字符串解释为完全限定的类名称,并创建 IDeferredInstance 实现,其
getInstance()
方法返回指定类的新实例。指定的类必须拥有不含参数的构造函数。下例显示了这种格式;在本示例中,编译器生成 IDeferredInstance1 实现,其getInstance()
方法返回 MyClass 类的实例:<MyComp myDeferredInstanceProperty="myPackage.MyClass/>
当 ActionScript 类延迟属性值的实例化时,使用 IDeferredInstance 接口。如果 ActionScript 类需要使用同一值的多个实例,则无法使用 IDeferredInstance。对于那些情况,请改用 IFactory 接口。
states.AddChild 类包含 IDeferredInstance 类型的 childFactory
属性。
相关 API 元素
公共方法
方法 | 由以下参数定义 | ||
---|---|---|---|
如果不存在实例,则基于类或函数创建实例 Object。 | IDeferredInstance |
Tue Jun 12 2018, 11:04 AM Z