| Package | mx.core | 
| Class | public class ClassFactory | 
| Inheritance | ClassFactory    Object | 
| Implements | IFactory | 
| Subclasses | ContextualClassFactory | 
You specify a generator class when you construct
  the factory object.
  Then you set the properties property on the factory object.
  Flex uses the factory object to generate instances by calling
  the factory object's newInstance() method.
The newInstance() method creates a new instance
  of the generator class, and sets the properties specified
  by properties in the new instance.
  If you need to further customize the generated instances,
  you can override the newInstance() method.
The ClassFactory class implements the IFactory interface.
  Therefore it lets you create objects that can be assigned to properties 
  of type IFactory, such as the itemRenderer property of a List control
  or the itemEditor property of a DataGrid control.
For example, suppose you write an item renderer class named 
  ProductRenderer containing
  a showProductImage property which can be true
  or false.
  If you want to make a List control use this renderer, and have each renderer
  instance display a product image, you would write the following code:
  var productRenderer:ClassFactory = new ClassFactory(ProductRenderer);
  productRenderer.properties = { showProductImage: true };
  myList.itemRenderer = productRenderer;
   The List control calls the newInstance() method on the
  itemRenderer to create individual instances of ProductRenderer,
  each with showProductImage property set to true.
  If you want a different List control to omit the product images, you use
  the ProductRenderer class to create another ClassFactory
  with the properties property set to
  { showProductImage: false }.
Using the properties property to configure the instances
  can be powerful, since it allows a single generator class to be used
  in different ways.
  However, it is very common to create non-configurable generator classes
  which require no properties to be set.
  For this reason, MXML lets you use the following syntax: 
<mx:List id="myList" itemRenderer="ProductRenderer">
The MXML compiler automatically creates the ClassFactory instance for you.
See also
| Property | Defined By | ||
|---|---|---|---|
![]()  | constructor : Object
 
  A reference to the class object or constructor function for a given object instance. 
 | Object | |
| generator : Class
 
      The Class that the newInstance() method uses
   to generate objects from this factory object. 
 | ClassFactory | ||
| properties : Object = null 
  An Object whose name/value pairs specify the properties to be set
   on each object generated by the newInstance() method. 
 | ClassFactory | ||
![]()  | prototype : Object
 [static] 
  A reference to the prototype object of a class or function object. 
 | Object | |
| Method | Defined By | ||
|---|---|---|---|
| 
 
ClassFactory(generator:Class = null) 
      Constructor. 
 | ClassFactory | ||
![]()  | 
 
  Indicates whether an object has a specified property defined. 
 | Object | |
![]()  | 
 
  Indicates whether an instance of the Object class is in the prototype chain of the object specified 
  as the parameter. 
 | Object | |
| 
 
newInstance():*
 
   Creates a new instance of the generator class,
   with the properties specified by properties. 
 | ClassFactory | ||
![]()  | 
 
  Indicates whether the specified property exists and is enumerable. 
 | Object | |
![]()  | 
 
     Sets the availability of a dynamic property for loop operations. 
 | Object | |
![]()  | 
 
  Returns the string representation of the specified object. 
 | Object | |
![]()  | 
 
  Returns the primitive value of the specified object. 
 | Object | |
| generator | property | 
public var generator:Class
      The Class that the newInstance() method uses
   to generate objects from this factory object.
     
| properties | property | 
public var properties:Object = null
  An Object whose name/value pairs specify the properties to be set
   on each object generated by the newInstance() method.
     
For example, if you set properties to
   { text: "Hello", width: 100 }, then every instance
   of the generator class that is generated by calling
   newInstance() will have its text set to
   "Hello" and its width set to
   100.
 The default value is null.
| ClassFactory | () | Constructor | 
public function ClassFactory(generator:Class = null)
Constructor.
Parametersgenerator:Class (default = null) — The Class that the newInstance() method uses
   to generate objects from this factory object.
      | 
| newInstance | () | method | 
public function newInstance():*
   Creates a new instance of the generator class,
   with the properties specified by properties.
     
This method implements the newInstance() method
   of the IFactory interface.
* — The new instance that was created.
   |