2011-05-03 2 views

답변

2

스파크는 플래시 빌더 4 (Flex4)에서 새로 추가 된 테마로 (헤일로 외에) 소개되었습니다. 이 두 가지 테마는 다양한 스타일을 지원합니다. Flex4를 사용하면 응용 프로그램의 설계 고려 사항에 따라 사용할 코드를 선택할 수 있습니다. Spark는 구성 요소에 사용자 정의 스킨을 사용하려는 경우 더 편리합니다. 반면 Halo에는 구성 요소에 대한 기본 스타일이 더 많이 있습니다.

5

다른 많은 답변이 테마에 중점을 둡니다. Halo와 Spark에는 기본 테마가 있지만 나는 Honda Civic을 Porsche와 비교하고 타이어에 집중하는 것과 같은 것이라고 생각합니다.

Spark와 Halo의 주요 차이점은 실제로 구성 요소를 만드는 데 사용되는 기본 아키텍처에 있습니다. Halo is the Flex 2[and 3] architecture이며 createChildren(), commitProperties(), measure() 및 updateDisplayList()와 같은 메서드가 있습니다. 구성 요소를 작성하려면 UIComponent를 클래스 계층의 어딘가에 확장하는 자체 구성 요소에서이 메소드를 대체해야합니다. MX 아키텍처라고도합니다.

헤일로 방식에서는 모든 시각적 디자인과 비즈니스 로직이 동일한 클래스 파일로 결합되었습니다. Spark 아키텍처는 Flex 4에 새로 추가 된 new architecture으로, 구성 요소 스키닝 및 구성시 유연성이 향상되었습니다. 두 클래스 시스템을 사용하며, 하나의 클래스는 비즈니스 로직을 포함하는 컴포넌트 클래스이고 다른 클래스는 시각적 디스플레이를 수행하는 스킨 클래스입니다.

스파크 구성 요소에는 SkinnableComponent라는 새 상위 구성 요소가 있습니다. SkinnableComponent는 실제로 UIComponent를 확장하므로 원래의 라이프 사이클 메서드는 그대로 유지됩니다. 그러나 SkinnableComponent는 새로운 후크를 제공하므로 구성 요소를 다르게 만듭니다. createChildren()을 재정의하는 대신 partAdded() 또는 partRemoved()를 재정의합니다. 모든 updateDisplayList() 및 measure() 코드는 다른 예로 스킨 클래스로 이동됩니다.

또한 Halo 및 Spark에 대한 별도의 UI 구성 요소 집합이 있습니다. 스파크 구성 요소는 가볍고 유연한 것으로 알려져 있지만 기능도 적습니다. Spark Combobox에는 예를 들어 Halo Combobox와 동일한 API가 없습니다.

상대 구성 요소 생태계를 도구로 만드는 것도 고려 사항입니다. 예를 들어, Flash Catalyst는 Spark 구성 요소에서만 작동합니다.

+1

위대한 답변! 중요한 겹침이있는 Halo/MX와 Spark를 모두 사용하는 것은 새로운 Flex 개발자의 학습 곡선을 혼란스럽게하고 아프게합니다. Spark 구성 요소에는 "원래의 라이프 사이클 메소드가 아직 남아 있습니다"라는 사실도 있습니다! 너무 많은 방법 !! 귀하의 짧은 설명은 사물을 분명히하는 데 도움이됩니다. 개인 취향에 따라 믹스 앤 매치를 할 수있는 것처럼 보입니다. 예를 들면, 순간에 "Date Chooser"가 없습니다. 문제 없습니다 ... MX 1을 지금 사용하십시오! 어 ... 제 생각 엔요. :) – Russ

관련 문제