2011-03-15 2 views
0

SkinParts는 모든 비즈니스 코드가 아닌 스킨에서 인스턴스화 된 개체에 이벤트 처리기 및 논리를 추가하는 좋은 방법입니다. 그렇지만 종종 그 반대의 경우를 원하고, 스킨 된 컨테이너에 삽입 될 부모 mxml 파일에서 재사용 가능한 스킨 가능한 컨테이너에 사용될 파트를 정의하려고합니다.skinPart의 반대쪽

컨트롤을 정의하고 피부 외부에서 삽입 된 여러 컨트롤로 다시 사용할 수있는 스킨을 정의 할 때 가장 좋은 방법은 무엇입니까?

편집 : 더 좋은 방법은 SkinnableContainer처럼 작동하는 무언가를 사용하는 것이지만 콘텐츠를 배치 할 수있는 한 영역에만 국한되지는 않습니다.

+0

내가하는 일을 잘 모르겠다 ... 어떤 코드 예입니까? –

답변

0

질문이 약간 정확하지 않으므로 찾고자하는 것이 무엇인지 잘 모르겠습니다. 그러나 저는 이것을 한 발 맞춰 볼 것입니다.

SkinParts는 멀리 모든 비즈니스 코드에서 피부에 인스턴스화되고있는 객체에 이벤트 핸들러와 로직을 추가 할 수있는 좋은 방법입니다.

나는 SkinParts를 사용하여 이벤트 처리기 또는 기타 논리를 개체에 추가 할 수 있다고 말하지 않습니다. 개발 관점에서 보았을 때 Skin (extends Skin)과 Business Class (SkinnableComponent 확장) 및 두 개의 별도 엔티티가 나타납니다. 런타임에 그들은 실제로 하나의 엔티티로 취급되는 것처럼 보입니다.

나는 실제 프레임 워크 코드에 대해 들어 본 적이 없지만, 내가 모은 것에서는 스킨이 스테이지에 추가 된 실제 표시 객체이고 비즈니스 클래스가 어떻게 든 그것에 병합됩니다. Flex Hero에서 소개 된 ActionScript 스킨을 살펴보면 유형이 비즈니스 클래스 여야하는 hostComponent 속성이 필요하다는 것을 알게 될 것입니다. 이것이 Flex Compiler가 HostComponent 메타 데이터를 사용하여 Flex 4.0/4.1에서 이미 수행하고있는 것으로 가정합니다.

은 종종하지만, 나 자신이 무엇을 반대

반대를 할 을 원하는 찾을? 스킨 안의 컴포넌트에 이벤트 핸들러를 추가하고 싶습니다. 어도비가 Spark Architecture에서 컴포넌트를 생성 할 때 Adobe가 요구하는 방향이 아니더라도 그렇게 할 수는 없습니다.

쉽게 재사용 할 수있는 데이터 및 기능의 "개별 패키지"를 만들고 싶다면 그렇게 할 수 있습니다. Spark 구성 요소, Halo 구성 요소 또는 비 Flex ActionScript 클래스를 사용하면 이러한 재사용 가능한 객체를 쉽게 사용할 수 있으며, 다른 Spark 또는 Halo 구성 요소에서 다시 사용할 수 있습니다.

질문에 대한 답변이 확실하지 않습니다. 하지만 정교하게 신경 쓰면 우리가 할 수있는 최선을 다할 수 있습니다.

관련 문제