This page was saved using jaction on 2006-09-04 8:33:32.
Address: http://flexdocs.kr/docs/flex2/langref/mx/core/ClassFactory.html
Title: mx.core.ClassFactory (Flex™ 2 레퍼런스 가이드)  •  Size: 24456
Packagemx.core
Classpublic class ClassFactory
InheritanceClassFactory Inheritance Object
ImplementsIFactory

ClassFactory 인스턴스는, 같은 property를 가지는 다른 클래스의 인스턴스를 작성하기 위해서 Flex 가 사용하는 「팩토리 object」입니다.

팩토리 object를 작성할 경우에는,generator 클래스를 지정합니다. 다음에, 팩토리 object에 properties property를 설정합니다. Flex 는 팩토리 object를 사용해, 팩토리 object의 newInstance() Methods를 호출하는 것에 의해 인스턴스를 작성합니다.

newInstance() Methods는,generator 클래스의 새로운 인스턴스를 작성해, 그 인스턴스의 properties 로 지정된 property를 설정합니다. 작성된 인스턴스를 한층 더 customize 할 필요가 있는 경우는,newInstance() Methods를 재정의(override) 할 수 있습니다.

ClassFactory 클래스는 IFactory 인터페이스를 Implements합니다. 따라서, List 컨트롤의 itemRenderer property나 DataGrid 컨트롤의 itemEditor property와 같이, IFactory 형의 property에 할당하는 것이 가능한 object를 작성할 수 있습니다.

예를 들어,true 또는 false 를 설정할 수 있는 showProductImage property를 포함한 ProductRenderer 라는 이름의 아이템 렌더러 클래스를 작성하는 것으로 합니다. List 컨트롤이 이 렌더러를 사용해, 각 렌더러 인스턴스로 제품의 화상을 표시하도록(듯이) 하고 싶은 경우는, 다음과 같은 코드를 작성합니다.

var productRenderer:ClassFactory = new ClassFactory(ProductRenderer);
productRenderer.properties = { showProductImage:true };
myList.itemRenderer = productRenderer;

List 컨트롤은 itemRenderernewInstance() Methods를 호출해, ProductRenderer 의 개개의 인스턴스를 작성합니다. 각 인스턴스의 showProductImage property는 true 로 설정됩니다. 제품의 화상을 제외한 다른 List 컨트롤이 필요한 경우는, ProductRenderer 클래스를 사용해,properties property를 { showProductImage: false } 로 설정한 다른 ClassFactory 를 작성합니다.

properties property를 사용해 인스턴스를 설정하는 방법은, 1 개의 제네레이터 클래스를 다양한 방법으로 사용할 수 있기 (위해)때문에, 매우 유효합니다. 다만, 통상은 property를 설정할 필요가 없는 비설정 제네레이터 클래스를 작성합니다. 그 때문에, MXML 에서는 다음의 문장구조법을 사용할 수 있습니다.

<mx:List id="myList" itemRenderer="ProductRenderer">

MXML 컴파일러가 자동적으로 ClassFactory 인스턴스를 작성합니다.

See also

mx.core.IFactory
mx.controls.List


Public property
 property정의
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
  generator : Class
이 팩토리 object로부터 object를 작성하기 위해서,newInstance() Methods가 사용하는 클래스입니다.
ClassFactory
  properties : Object = null
이 object의 이름과 값의 페어에 의해 지정되는 property가,newInstance() Methods에 의해 작성되는 각 object로 설정됩니다.
ClassFactory
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
Public Methods
 Methods정의
  ClassFactory (generator:Class = null)
constructor   .
ClassFactory
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
  newInstance ():*
properties 로 지정된 property를 사용해,generator 클래스의 새로운 인스턴스를 작성합니다.
ClassFactory
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
property의 상세
generatorproperty
public var generator:Class

이 팩토리 object로부터 object를 작성하기 위해서,newInstance() Methods가 사용하는 클래스입니다.

propertiesproperty 
public var properties:Object = null

이 object의 이름과 값의 페어에 의해 지정되는 property가,newInstance() Methods에 의해 작성되는 각 object로 설정됩니다.

예를 들어,properties{ text: "Hello", width: 100 } 으로 설정하면,newInstance() 를 호출하는 것에 의해 작성되는 generator 클래스의 모든 인스턴스로,text"Hello" 에,width100 으로 설정됩니다.

디폴트치null.

constructor    의 상세
ClassFactory()constructor   
public 함수 ClassFactory(generator:Class = null)

constructor   .

Parameters
generator:Class (default = null) — 이 팩토리 object로부터 object를 작성하기 위해서,newInstance() Methods가 사용하는 클래스입니다.
Methods의 상세
newInstance()Methods
public function newInstance():*

properties 로 지정된 property를 사용해,generator 클래스의 새로운 인스턴스를 작성합니다.

이 Methods에 의해, IFactory 인터페이스의 newInstance() Methods가 Implements됩니다.

반환값
* — 작성된 새로운 인스턴스입니다.






 

코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트

현재의 페이지: http://flexdocs.kr/docs/flex2/langref/mx/core/ClassFactory.html