В чем разница между Halo и Spark в Flex3 и Flex4?

Возможный дубликат:
Каковы недостатки использования Spark вместо Halo во Flex?

В чем разница между Halo и Spark в Flex3 и Flex4?


person Raju    schedule 03.05.2011    source источник


Ответы (3)


Spark — это новая тема, представленная (в дополнение к Halo) в Flash Builder 4 (Flex4). Эти две темы поддерживают разные стили. С Flex4 вы можете выбрать, какой из них вы хотите использовать, в зависимости от соображений дизайна для вашего приложения. Spark более удобен, если вы хотите использовать пользовательские скины для своих компонентов; Halo, с другой стороны, имеет больше встроенных стилей для компонентов.

person Sai    schedule 03.05.2011

Многие другие ответы сосредоточены на темах; и хотя у 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.

person JeffryHouser    schedule 03.05.2011
comment
Отличный ответ! Наличие Halo/MX и Spark со значительным перекрытием довольно запутанно и мешает обучению новых разработчиков Flex. Как и тот факт, что исходные методы жизненного цикла все еще присутствуют в компонентах Spark! Слишком много методов!! Однако ваше краткое объяснение помогает прояснить ситуацию. Кажется, что вы можете смешивать и сочетать в соответствии с личными предпочтениями.... например: в данный момент нет выбора даты в искре? Нет проблем... пока используйте MX! Э... я думаю. :) - person Russ; 03.06.2011

Прочтите документацию Adobe по этому вопросу:

http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html

Различия в состоянии поначалу поставили меня в тупик.

person Tony Lukasavage    schedule 03.05.2011