| Package | mx.core |
| Class | public class ClassFactory |
| Inheritance | ClassFactory Object |
| Implements | IFactory |
팩토리 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 컨트롤은 itemRenderer 의 newInstance() 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
| property | 정의 | ||
|---|---|---|---|
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
| generator : Class
이 팩토리 object로부터 object를 작성하기 위해서,
newInstance() Methods가 사용하는 클래스입니다. | ClassFactory | ||
| properties : Object = null
이 object의 이름과 값의 페어에 의해 지정되는 property가,
newInstance() Methods에 의해 작성되는 각 object로 설정됩니다. | ClassFactory | ||
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| Methods | 정의 | ||
|---|---|---|---|
| ClassFactory (generator:Class = null)
constructor .
| ClassFactory | ||
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
newInstance ():*
properties 로 지정된 property를 사용해,generator 클래스의 새로운 인스턴스를 작성합니다. | ClassFactory | ||
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
![]() | toString ():String
지정된 object의 string 표현을 돌려줍니다.
| Object | |
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
| generator | property |
public var generator:Class
이 팩토리 object로부터 object를 작성하기 위해서,newInstance() Methods가 사용하는 클래스입니다.
| properties | property |
public var properties:Object = null
이 object의 이름과 값의 페어에 의해 지정되는 property가,newInstance() Methods에 의해 작성되는 각 object로 설정됩니다.
예를 들어,properties 를 { text: "Hello", width: 100 } 으로 설정하면,newInstance() 를 호출하는 것에 의해 작성되는 generator 클래스의 모든 인스턴스로,text 가 "Hello" 에,width 가 100 으로 설정됩니다.
디폴트치null.
| ClassFactory | () | constructor |
public 함수 ClassFactory(generator:Class = null)constructor .
Parametersgenerator:Class (default = null) — 이 팩토리 object로부터 object를 작성하기 위해서,newInstance() Methods가 사용하는 클래스입니다.
|
| newInstance | () | Methods |
public function newInstance():*
properties 로 지정된 property를 사용해,generator 클래스의 새로운 인스턴스를 작성합니다.
이 Methods에 의해, IFactory 인터페이스의 newInstance() Methods가 Implements됩니다.
* — 작성된 새로운 인스턴스입니다.
|
코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트
현재의 페이지: http://flexdocs.kr/docs/flex2/langref/mx/core/ClassFactory.html