검 쉰 의 블로그 - 영원 의 헤아림 - ' UIComponent ' 태그 의 글 목록 
 도서 Event Adobe 이벤트 ActionScript 3 . 0 원 강민 신간 플렉스 flex array Flash AIR AS 3 flex 4 u 강의 flex 3 대 응 팀 AS 3 . 0 XML DataGrid 
 446 , 411 Visitors up to today ! 
 Today 6 hit , Yesterday 11 hit 
 ' UIComponent ' 에 해당 되 는 글 2 건 
 [ FLEX ] 왜 Sprite 는 Canvas 에 addChild 안 되 는 걸까 ? ( 7 ) | 2007 . 12 . 04 
 [ FLEX ] 왜 Sprite 는 Canvas 에 addChild 안 되 는 걸까 ? 
 2007 . 12 . 04 10 : 33 
 왜 Sprite 는 Canvas 에 addChild 안 되 는 걸까요 ? 
 - Sprite 는 무엇 인가요 ? 
 먼저 Sprite 는 무엇 인지 잘 모르 는 분 들 을 위해 설명 을 곁들여 보 죠 . 
 ActionScript 3 에서 는 Sprite Class 라 불리우 는 새로운 Class 를 사용 하 게 되 는데 . .. Sprite Object 는 Movie Clip 과 유사 합니다만 , Timeline 이 없 다는 것 이 큰 차이점 입니다 . Sprite 는 timeline 을 요구 하 진 않 는 곳 에서 쓰일 수 있 는 적합 한 Base Class 입니다 . 
 인용 : 지 돌 스타 님 블로그 
 물론 , Sprite 를 FLEX 에서 사용 하 고 싶 다면 UIComponent 에 addChild 하 여서 사용 하 면 됩니다 . ( 참고 : 지 돌 스타 님 블로그 ) 
 하 지만 , UIComponent 를 상속 하 고 있 는 Canvas 에 는 왜 addChild 가 되 지 않 는가 하 는 것 이 이 글 의 주요 주제 죠 . 
 - Sprite 을 Canvas 에 addChild 하 면 ? 
 여기 서 분명 한 것 은 Sprite 를 Canvas 에 addChild 하 면 
 " TypeError : Error # 1034 : 유형 강제 변환 에 실패 했 습니다 . flash . display : : Sprite @ 45 cd 351 을 ( 를 ) mx . core . IUIComponent ( 으 ) 로 변환 할 수 없 습니다 . " 
 라고 컴파일 시 에 Error 가 난다는 겁니다 . 
 오류 가 난 곳 을 따라가 보 면 Canvas 가 상속 하 고 있 는 Container 클래스 의 addingChild 메소드 에서 나 는 것 을 알 수 있 습니다 . 
 override mx _ internal function addingChild ( child : DisplayObject ) : void 
 / / Throw an RTE if child is not an IUIComponent . 
 IUIComponent 타입 인지 확인 하 고 있 는데 , Sprite 는 IUIComponent type 이 아니 기 때문 에 오류 가 나 고 있 는 것 입니다 . 
 - IUIComponent 는 무엇 인가요 ? 
 그럼 IUIComponent 는 무엇 일까요 ? 
 클래스 안 에 있 는 주석 으로 다음 과 같이 설명 되 고 있 습니다 . 
 FLEX 의 Visual Component 의 기본 은 UIComponent 입니다 . 
 인터페이스 는 이 UIComponent 가 구현 하 고 있 는 인터페이스 로서 위 의 설명 에 따르 면 , 
 Flex 의 Container 나 List 의 child 들 은 IUIComponent 인터페이스 를 구현 하 고 있 어야 된다고 합니다 . 
 ( 아니 면 위 에러 메세지 처럼 IUIComponent 타입 이 아니 라서 오류 나 죠 ㅡㅂㅡ ) 
 - 그렇 다면 Canvas 는 ? 
 Canvas Container UIComponent FlexSprite Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object 
 인용 : Flexdocs . kr 
 위 의 관계 대로 만들 어 진 Canvas 에 는 IUIComponent 가 구현 된 ( 다시 말 해 UIComponent 를 상속 받 는 ) 클 래스 들 은 
 모두 addChild 될 수 있 으나 그렇 지 않 은 클래스 는 addChild 되 지 못하 게 됩니다 . 
 Sprite 는 IUIComponent 인터페이스 를 구현 하 고 있 지 않 으므로 
 Container 에 는 addChild 할 수 없 는 것 입니다 . 
 Sprite 를 Canvas 같 은 Container 에 추가 하 여야 하 는 일 이 생긴다면 아래 와 같이 클래스 만드 셔서 addChild 하 셔도 괜찮 을 것 같 네요 . : ) 
 public class mySprite extends UIComponent 
 [ 팁 ] Sprite 사용법 
 Flex 2 Beta 3 : Sprites 
 ActionScript 3 . 0 , addChild , Adobe , AS 3 , canvas , Container , flex , IUIComponent , Sprite , UIComponent 
 Trackback 2 : Comment 7 
 지 돌 스타 | 2007 . 12 . 10 09 : 59 신고 | PERMALINK | EDIT / DEL | REPLY 
 잘 읽 었 습니다 . Canvas 가 Sprit 를 직접 올릴 수 없 게 하 는 이유 를 나름 대로 생각 해 보 면 
 Sprit 는 UIComponent 가 기본 적 으로 가지 는 CSS 라든가 Canvas 에서 Child 에 접근 할 때 공통 적 으로 접근 하 는 method 가 정의 되 어 있 지 않 아서 가 아닌가 싶 습니다 . 즉 IUIComponent 로 Casting 하 는 절차 가 바로 그것 을 확인 하 는 작업 이 겠 지요 . 
 정확 한 분석 이 따라야 하 지만 지금 생각 에 는 그럴 것 같 다는 생각 이 강하 게 드 는군요 . ^^ 
 검 쉰 | 2007 . 12 . 10 14 : 15 신고 | PERMALINK | EDIT / DEL 
 에 이레네 | 2008 . 01 . 30 11 : 35 신고 | PERMALINK | EDIT / DEL | REPLY 
 Canvas 는 컨테이너 클래스 를 상속 했 죠 ^^ UIComponent 의 addChild 메소드 는 기본 적 으로 대상 이 Sprite 를 상속 한 클래스 인데 
 검 쉰 | 2008 . 01 . 30 11 : 48 신고 | PERMALINK | EDIT / DEL 
 박스 농사 | 2008 . 07 . 31 16 : 21 신고 | PERMALINK | EDIT / DEL | REPLY 
 사진 바 꼇네 ? 이제 사람 좀 된 듯 
 검 쉰 | 2008 . 07 . 31 16 : 57 신고 | PERMALINK | EDIT / DEL 
 넌 애니메이션 이 자 나 . .... ㅋ 
 물빛 미르 | 2009 . 12 . 15 11 : 15 신고 | PERMALINK | EDIT / DEL | REPLY