[Flex3] ActionScript 컴포넌트 생성 / Creating ActionScript components
Reference : http://livedocs.adobe.com/flex/3/html/usingas_7.html#217182
ActionScript 를 사용하는 재사용가능한 컴포넌트를 생성할 수 있고, 이 컴포넌트를 Flex 어플리케이션에서 MSML 태그처럼 참조할 수 있다. ActionScript 에서 생성된 컴포넌트는 그래픽 요소를 가질 수 있고, 비즈니스 로직을 정의할 수 있다. 또는 현존하는 Flex 컴포넌트륵 확장할 수도 있다. Flex 에서 어떤 컴포넌트도 상속할 수 있다.
ActionScript 에서 컴포넌트를 정의하는 것은 몇 가지 장점이 있다. 컴포넌트는 어플리케이션을 개발과 유지보수를 따로 할 수 있는 개개의 모듈로 나누는 것을 가능하게 한다. 컴포넌트에 일반적으로 사용되는 로직을 구현함으로써 여러 개의 Flex 어플리케이션에서 공유할 수 있는 재사용 가능한 컴포넌트 수트를 만들 수 있다.
또, Felx 클래스 계층 구조를 확장함으로써 Flex 컴포넌트 세트를 기반으로 하는 컴포넌트를 생성할 수 있다. Flex 시각 컨트롤의 새로운 버전을 생성할 수 있고, 비시각 컴포넌트의 특정 버전을 생성할 수도 있다.
예를 들어 myControls 패키지에 Button 컨트롤에서 파생된 새로운 버튼을 정의할 수 있다:
import mx.controls.Button;
public class MyButton extends Button {
public function MyButton() {
...
}
...
}
}
이 예제에서 MyButton.as 파일에 MyButton 컨트롤을 작성하고, Flex 어플리케이션 루트 아래에 있는 myControls 디렉토리에 저장할 수 있다. The fully qualified class name of your component reflects its location. In this example, the component's fully qualified class name is myControls.MyButton.
MyApp.mxml 과 같은 Flex 어플리케이션 파일에서 새로운 Button 컨트롤을 참조할 수 있다:
<cmp:MyButton label="Jack"/>
</mx:Application>
이 예제에서 어플리케이션의 디렉토리 구조에서 컴포넌트의 위치를 정의하는 cmp 네임 스페이스를 정의한다. 그리고 네임스페이스 접두사를 사용하여 MXML 태그로 컴포넌트를 참조한다.
일반적으로 소스 경로에 있는 디렉토리에 ActionScript 컴포넌트를 위치시킨다. flex-config.xml file 파일의 <source-path> 태그에 명시한 어떤 디렉토리도 가능하다.
MXML을 사용해서 컴포넌트를 생성하는 것도 가능하다. Creating and Extending Adobe Flex 3 Components 에서 더 많은 정보를 볼 수 있다.
Types of custom components
사용자 정의 컴포넌트의 종류
ActionScript에서 아래의 타입의 컴포넌트를 생성할 수 있다:
User-interface components
사용자 인터페이스 컴포넌트
User-interface components 는 처리 로직과 시각 요소를 모두 갖고 있다. 이 컴포넌트는 대개 Flex 컴포넌트 계층 구조를 확장한다. UIComponent 클래스나 다른 Flex 컴포넌트를 확장할 수 있다. Your custom ActionScript 컴포넌트는 기반 클래스의 퍼블릭과 프로텍티드 속성에 따라 모든 퍼블릭 메쏘드를 상속받는다.
Nonvisual components
비시각 컴포넌트
Nonvisual components 는 어떤 시각 요소도 정의하지 않는다. 비시각 컴포넌트는 UIComponent 클래스를 확장하지 않은 ActionScript 클래스다. 런타임에 더 높은 효율을 제공할 수 있다.
'Adobe > Flex' 카테고리의 다른 글
[flex3] 전체 화면 보여주기 / Displaying full-screen windows (0) | 2008.09.01 |
---|---|
[Flex3] 어플리케이션 개발 / Developing applications (0) | 2008.08.27 |
[Flex3] MXML 에 대하여 / About MXML (0) | 2008.08.26 |
[Flex3] Tile 레이아웃 컨테이너 / Tile layout container (0) | 2008.08.21 |
[Flex3] Panel 레이아웃 컨테이너 / Panel layout container (0) | 2008.08.21 |
[Flex3] ActionScript 와 MXML 을 분리하는 기술 / Techniques for separating ActionScript from MXML (0) | 2008.08.20 |
[Flex3] Comparing, including, and importing ActionScrip code (0) | 2008.08.19 |
[Flex3] Flex 컴포넌트 / Working with Flex Components (0) | 2008.08.17 |
[Flex3] Flex 어플리케이션에서 ActionScript 사용 / Using ActionScript in Flex applications (0) | 2008.08.16 |
[Flex3] ActionScript 사용 / Using ActionScript (0) | 2008.08.16 |