mx.core
接口public interface IDeferredInstance
实现器 DeferredInstanceFromClass, DeferredInstanceFromFunction

IDeferredInstance 接口定义 Flex 延迟实例工厂接口。实现 IDeferredInstance 会在首次调用 getInstance() 方法时创建一个特定实例值,并在随后调用 getInstance() 方法时返回对该值的引用。

当 Flex 编译器遇到为 IDeferredInstance 类型的属性分配值的 MXML 时,将执行以下自动强制操作:

  1. 如果为 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>
  2. 如果为 IDeferredInstance 类型的属性非配的是文本字符串,则编译器会将字符串解释为完全限定的类名称,并创建 IDeferredInstance 实现,其 getInstance() 方法返回指定类的新实例。指定的类必须拥有不含参数的构造函数。下例显示了这种格式;在本示例中,编译器生成 IDeferredInstance1 实现,其 getInstance() 方法返回 MyClass 类的实例:
    <MyComp myDeferredInstanceProperty="myPackage.MyClass/>

当 ActionScript 类延迟属性值的实例化时,使用 IDeferredInstance 接口。如果 ActionScript 类需要使用同一值的多个实例,则无法使用 IDeferredInstance。对于那些情况,请改用 IFactory 接口。

states.AddChild 类包含 IDeferredInstance 类型的 childFactory 属性。

另请参见

mx.states.AddChild
Implementing a template component


公共方法
 方法定义方
  
如果不存在实例,则基于类或函数创建实例 Object。
IDeferredInstance
方法详细信息
getInstance()方法
public function getInstance():Object

如果不存在实例,则基于类或函数创建实例 Object。

返回
Object — 实例 Object。