Flex3とFlex4のHaloとSparkの違いは何ですか?
3 に答える
他の多くの回答はテーマに焦点を当てています。HaloとSparkにはデフォルトのテーマがあります。それはホンダシビックとポルシェを比較してタイヤに焦点を当てているようなものだと思います。
SparkとHaloの主な違いは、コンポーネントの構築に使用される基盤となるアーキテクチャにあります。 HaloはFlex2[および3]アーキテクチャであり、createChildren()、commitProperties()、measure()、updateDisplayList()などのメソッドがあります。コンポーネントを構築するには、クラス階層のどこかにUIComponentを拡張する独自のコンポーネントでこれらのメソッドをオーバーライドします。これはMXアーキテクチャと呼ばれることもあります。
Haloのアプローチでは、すべてのビジュアルデザインとビジネスロジックが同じクラスファイルに結合されました。Sparkアーキテクチャは、Flex 4で導入された新しいアーキテクチャであり、コンポーネントのスキニングと構築の際の柔軟性を高めます。2つのクラスのシステムを使用します。1つのクラスはビジネスロジックを含むコンポーネントクラスであり、もう1つのクラスは視覚的な表示を実行するスキンクラスです。
Sparkコンポーネントには、SkinnableComponentという名前の新しい親コンポーネントがあります。SkinnableComponentは実際にはUIComponentを拡張しているため、元のライフサイクルメソッドは引き続き存在します。ただし、SkinnableComponentは新しいフックを提供するため、コンポーネントを別の方法で作成します。たとえば、createChildren()をオーバーライドする代わりに、partAdded()またはpartRemoved()をオーバーライドします。別の例として、すべてのupdateDisplayList()およびmeasure()コードがスキンクラスに移動されます。
さらに、HaloとSpark用のUIコンポーネントの個別のセットがあります。Sparkコンポーネントは、軽量で柔軟性があることで知られていますが、機能も少なくなっています。たとえば、SparkComboboxにはHaloComboboxと同じAPIはありません。
相対的なコンポーネントエコシステムを回避するツールも考慮事項です。たとえば、FlashCatalystはSparkコンポーネントでのみ機能します。
このテーマに関するAdobeのドキュメントをお読みください。
http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html
状態の違いから、最初はループに陥りました。
Sparkは、Flash Builder 4(Flex4)で(Haloに加えて)導入された新しいテーマです。これらの2つのテーマは、さまざまな種類のスタイルをサポートしています。Flex4では、アプリケーションの設計上の考慮事項に応じて、使用するものを選択できます。コンポーネントにカスタムスキンを使用する場合は、Sparkの方が便利です。一方、Haloには、コンポーネント用の組み込みスタイルがあります。