Adobe® Flex® 4 Language Reference
Hide Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
mx.core 
ClassFactory 
Packagemx.core
Classpublic class ClassFactory
InheritanceClassFactory Inheritance Object
Implements IFactory
Subclasses ContextualClassFactory

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

A ClassFactory instance is a "factory object" which Flex uses to generate instances of another class, each with identical properties.

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



Public Properties
 PropertyDefined By
 Inheritedconstructor : 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
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
Public Methods
 MethodDefined By
  
ClassFactory(generator:Class = null)
Constructor.
ClassFactory
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
  
Creates a new instance of the generator class, with the properties specified by properties.
ClassFactory
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
Property Detail

generator

property
public var generator:Class

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

The Class that the newInstance() method uses to generate objects from this factory object.

properties

property 
public var properties:Object = null

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

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.

Constructor Detail

ClassFactory

()Constructor
public function ClassFactory(generator:Class = null)

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Constructor.

Parameters
generator:Class (default = null) — The Class that the newInstance() method uses to generate objects from this factory object.
Method Detail

newInstance

()method
public function newInstance():*

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Creates a new instance of the generator class, with the properties specified by properties.

This method implements the newInstance() method of the IFactory interface.

Returns
* — The new instance that was created.