mx.core

# IDeferredInstance - AS3 Flex

Package | mx.core
Interface | public interface IDeferredInstance

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The IDeferredInstance interface defines the Flex deferred instance factory interface. An implementation of IDeferredInstance creates a particular instance value when the `getInstance()` method is first called, and returns a reference to that value when the `getInstance()` method is called subsequently.

The Flex compiler performs the following automatic coercions when it encounters MXML that assigns a value to a property with the IDeferredInstance type:

1. If you assign a property of type IDeferredInstance a value that is an MXML child tag representing a class, such as a component tag, the compiler creates an IDeferredInstance implementation whose `getInstance()` method returns an instance of the class, configured as specified in the MXML code. The following example shows this format; in this example, MyComp is a custom component that has a variable called myDeferredInstanceProperty of type IDeferredInstance. The compiler generates an IDeferredInstance1 implementation whose `getInstance()` method returns an instance of the Label class, with its text property set to "This is a deferred label":

                 <MyComp>
                     <myDeferredInstanceProperty>
                         <Label text="This is a deferred label"/>
                     </myDeferredInstanceProperty>
                 </MyComp>

2. If you assign a text string to a property of type IDeferredInstance, the compiler interprets the string as a fully qualified class name, and creates an IDeferredInstance implementation whose `getInstance()` method returns a new instance of the specified class. The specified class must have a constructor with no arguments. The following example shows this format; in this example, the compiler generates an IDeferredInstance1 implementation whose `getInstance()` method returns an instance of the MyClass class:

                 <MyComp myDeferredInstanceProperty="myPackage.MyClass/>

Use the IDeferredInstance interface when an ActionScript class defers the instantiation of a property value. You cannot use IDeferredInstance if an ActionScript class requires multiple instances of the same value. In those situations, use the IFactory interface.

The states.AddChild class includes a `childFactory` property that is of type IDeferredInstance.

Learn more

Using IDeferredInstance in a template component

Related API Elements

mx.states.AddChild

Public Methods

| Method | Defined By
--- | --- | ---
|  | getInstance():Object Creates an instance Object from a class or function, if the instance does not yet exist. | IDeferredInstance

Method Detail

### getInstance

()
method

`public function getInstance():Object`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Creates an instance Object from a class or function, if the instance does not yet exist.

Returns

| `Object` — The instance Object.

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00