Возможный дубликат:
Каковы недостатки использования Spark вместо Halo во Flex?
В чем разница между Halo и Spark в Flex3 и Flex4?
Возможный дубликат:
Каковы недостатки использования Spark вместо Halo во Flex?
В чем разница между Halo и Spark в Flex3 и Flex4?
Spark — это новая тема, представленная (в дополнение к Halo) в Flash Builder 4 (Flex4). Эти две темы поддерживают разные стили. С Flex4 вы можете выбрать, какой из них вы хотите использовать, в зависимости от соображений дизайна для вашего приложения. Spark более удобен, если вы хотите использовать пользовательские скины для своих компонентов; Halo, с другой стороны, имеет больше встроенных стилей для компонентов.
Многие другие ответы сосредоточены на темах; и хотя у Halo и Spark есть темы по умолчанию; Я думаю, это все равно, что сравнивать Honda Civic с Porsche и сосредотачиваться на шинах.
Основное различие между Spark и Halo действительно заключается в базовой архитектуре, используемой для создания компонентов. Halo — это архитектура Flex 2[и 3], в которой есть такие методы, как createChildren (), commitProperties(), Measure() и updateDisplayList(). Чтобы создать компоненты, вы переопределите эти методы в своем собственном компоненте, который расширяет UIComponent где-то в иерархии классов. Иногда это называют архитектурой MX.
В подходе Halo весь визуальный дизайн и бизнес-логика были объединены в один и тот же файл класса. Архитектура Spark — это новая архитектура, представленная в Flex 4. это обеспечивает большую гибкость при создании скинов и компонентов. Он использует двухклассовую систему, где один класс является классом компонента, который будет содержать бизнес-логику, а другой класс является классом оболочки, который будет выполнять визуальное отображение.
Компоненты Spark имеют новый родительский компонент с именем SkinnableComponent. SkinnableComponent фактически расширяет UIComponent, поэтому исходные методы жизненного цикла все еще существуют; но SkinnableComponent предоставляет новые хуки, поэтому мы создаем компоненты по-другому. Вместо переопределения createChildren() мы, например, переопределим partAdded() или partRemoved(). Весь код updateDisplayList() и Measure() перемещен в класс скина в качестве еще одного примера.
Кроме того, существует отдельный набор компонентов пользовательского интерфейса для Halo и Spark. Компоненты Spark известны тем, что они легче и гибче, но у них меньше возможностей. Например, поле со списком Spark не имеет того же API, что и поле со списком Halo.
Инструмент вокруг экосистемы относительных компонентов также является соображением. Например, Flash Catalyst будет работать только с компонентами Spark.
Прочтите документацию Adobe по этому вопросу:
http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html
Различия в состоянии поначалу поставили меня в тупик.