2

可能重复:
在 Flex 中使用 Spark over Halo 有什么缺点?

Flex3 和 Flex4 中的 Halo 和 Spark 有什么区别?

4

3 回答 3

5

许多其他答案都集中在主题上;虽然 Halo 和 Spark 确实有默认主题;我认为这就像将本田思域与保时捷进行比较并专注于轮胎。

Spark 和 Halo 的主要区别在于用于构建组件的底层架构。 Halo 是 Fl​​ex 2[和 3] 架构,具有 createChildren()、commitProperties()、measure() 和 updateDisplayList() 等方法。要构建组件,您将在自己的组件中覆盖这些方法,这会在类层次结构中的某处扩展 UIComponent。有时这称为 MX 架构。

在 Halo 方法中,所有的视觉设计和业务逻辑都被合并到同一个类文件中。Spark 体系结构是 Flex 4 中引入的一种新体系结构,它在皮肤和构建组件时允许更大的灵活性。它使用两个类系统,一个类是包含业务逻辑的组件类,另一个类是执行视觉显示的皮肤类。

Spark 组件有一个新的父组件,名为 SkinnableComponent。SkinnableComponent 实际上扩展了 UIComponent,所以原来的生命周期方法还在;但是 SkinnableComponent 提供了新的钩子,因此我们以不同的方式创建组件。例如,我们不会覆盖 createChildren(),而是覆盖 partAdded() 或 partRemoved()。作为另一个示例,所有 updateDisplayList() 和 measure() 代码都移到了皮肤类中。

此外,Halo 和 Spark 还有一组单独的 UI 组件。Spark 组件以更轻、更灵活而著称,但它们的功能也较少。例如,Spark Combobox 没有与 Halo Combobox 相同的 API。

围绕相关组件生态系统的工具也是一个考虑因素。例如,Flash Catalyst 仅适用于 Spark 组件。

于 2011-05-03T16:40:38.477 回答
2

阅读 Adob​​e 关于该主题的文档:

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

状态的差异起初让我陷入了困境。

于 2011-05-03T15:08:11.970 回答
2

Spark 是 Fl​​ash builder 4 (Flex4) 中引入的一个新主题(除了 Halo)。这两个主题支持不同类型的样式。使用 Flex4,您可以根据应用程序的设计考虑选择要使用哪一种。如果您想在组件上使用自定义皮肤,Spark 会更方便;另一方面,Halo 有更多内置的组件样式。

于 2011-05-03T15:15:29.980 回答