XPLATFORM 101
User Object 에 대해 좀 더 자세하게 살펴보도록 하겠습니다.
처음 User Object 를 만들고 아무런 코드를 넣지 않으면
상속받은 컴포넌트와 동일하게 동작합니다.
하지만 그렇다면 별도의 컴포넌트를 만드는 의미가 없죠.

User Object 를 만든다는 것은 상속받은 컴포넌트와 비슷하지만
다른 속성과 동작을 가지는 무언가를 필요로 하기 때문에 만드는 것입니다.

단지 보여지는 영역만 다르게 표현해야 한다면
스타일을 적용하는 것이 적절한 선택입니다.
하지만 스타일로 표현하기 힘든 부분이거나 다른 속성이 필요하다면 User Object로 만들어놓고 관리하는 것이 편할 겁니다.

User Object 를 만들때에는 다음과 같은 기능을 사용할 수 있습니다.

(1) 메소드 오버라이드
- 버튼을 예로 들면 버튼에서 사용하는 메소드의 기능을 확장할 수 있습니다.
예를 들어 버튼 click 메소드를 호출했을때 특정 이벤트를 처리하고 싶다면 다음과 같이 처리할 수 있습니다.
function click()
{
super.click();
trace("TEST CLICK");
}
이렇게 하면 버튼에서 제공하는 기본 click 메소드를 실행하고 나서
다음 코드를 처리해줍니다.

(2) 메소드 추가
- 기존 컴포넌트에 없는 메소드나 속성을 추가할 수 있습니다.
이렇게 추가된 메소드나 속성은 코드 힌트에서도 보여집니다.


(3) 속성 추가
- 속성을 추가하는 경우에는 변수 자체를 public 으로 추가해도 되지만
set, get 함수로 정의할 수 있습니다.
양식은 아래와 같은 양식이 되겠죠.
class usrButton extends Button
{
private  var  userprop_value;
function  get  userprop()
{
      return  userprop_value;
}
function  set  userprop ( newval ) 
{
      userprop_value = newval;
}
}
(4) 사용자 이벤트 추가
UserEvent 라는 오브젝트가 있어 사용자 정의 이벤트를 만들고 이를 사용할 수 있습니다.
그리고 이벤트를 만들고 처리하게 될때 같이 날려주는 정보가 있습니다.
이런 정보들은 ~~EventInfo 와 같은 식으로 정의가 되어있는데
모든 정보는 EventInfo 오브젝트를 상속받습니다.

기본적인 EventInfo 오브젝트는 이벤트 ID와 이벤트가 발생한 오브젝트를 표시하는 속성을 제공합니다.
컴포넌트에서 제공할 수 있는 추가적인 정보를 포함시킬 수도 있습니다.

* 테스트를 해보고 샘플이라도 보여드려야 하는데.. 아직 공부가 부족한가 봅니다. 일단 여기까지..

http://cafe.naver.com/xplatform101/277