FlexとFlashを使用する場合の利点と欠点の簡潔なリストをどこでも探してみました。
プログラミングの背景から来た私は、Flexが大好きです。入手は簡単で、Flashクラスを使用できるので、フレックスなしでFlashを使用したいのはなぜですか?
フレックス:
長所:
短所:
フラッシュ
長所:
短所:
これまでに言ったことをすべて逃した場合は、修正してください。
FlashとFlexはどちらも、フロントエンドが異なるだけで、同じ基盤となるレンダリングエンジンを使用します。 Flashは、映画やアニメーションの作成に適しています。 Flexはアプリケーション開発に適しています。
プログラマーの観点から見ると、FlashとFlexの大きな違いは、プログラミングに使用するIDE /アプリケーションではなく、ActionScript(AS)のみでプログラミングするか、FlexフレームワークとMXMLを使用してアプリケーションをプログラミングするかです。
私は純粋なActionScriptがプログラミングに優れていると思います(Flash IDEまたはFlex IDEはそれほど関係ありません)を使用します)。MXMLは非プログラマ向けですASでプログラムされたコンポーネントを組み合わせる。
私はあなたのリストにこれらの長所/短所を追加します:
フレックス:
長所:
短所:
Flash(またはFlex IDE):
長所:
短所:
つまり、適切なタスクに適したツールを選択してください。
Flexは、ActionScript3で記述されたコードのライブラリーであるため、Flashに多くの機能と標準ライブラリーのようなものを追加します。欠点は、アプリケーションに含まれる膨大な量のコードであることです。アプリでFlexを使用すると、SWFのダウンロードサイズが数百K増加します。
アプリケーションに何らかの種類のユーザーインターフェイスウィジェットがある場合、Flash自体はテキストボックスなどの最も基本的なものしか持っていないため、ほとんどFlexを使用する必要があります。 Flexには、レイアウト、データバインディング、XMLセットアップなどを備えた完全なXML GUIがあります。
それをフラッシュで行うと、リストボックスのようなものを最初から作成する必要があります...
私の意見では、Flexフレームワークの最も重要な機能はコンポーネントのライフサイクルであり、プロパティ、コンポーネントサイズ、および階層的レンダリングの検証/無効化のための非常にエレガントなモデルを提供します。
開発者にとっての利点は、ビジネスロジックとレンダリングのために個別のアプリケーションフェーズを作成し、フレームを描画する前の最後の瞬間まで、高価なジオメトリとレンダリングコードを回避することです。
これは、それがどのように機能するかを説明する本当に良いプレゼンテーションです:
http://tv.Adobe.com/#vi+f15384v1002
フレームワークのデフォルトのコンポーネントとコンテナを使用している場合、モデルは非常に適切に設計されているため、Flex開発の大部分の間、コンポーネントのライフサイクルはほとんど完全に見えません。独自のコンポーネントの開発を開始するときだけ、内部の仕組みを学ぶ必要があります。
Flash環境、または純粋なActionscriptで開発している場合、それは得られません。純粋なAS3アプリケーションを開発する人は、ビジネスロジックをレンダリングから分離するためにveryを慎重にコーディングする必要があります。そうしないと、パフォーマンスが大幅に低下します。
[...]フレックスなしでFlashを使用したいのはなぜですか?
Flexは新製品ですが、FlashはMacromediaの時代から存在していました。デザイナー、アニメーター、およびプログラミング教育の主食に慣れていないほとんどの人は、おそらく他のほとんどのそのようなソリューションよりもFlashを習得しやすいでしょう。
ターゲットが違います。 Flexはプログラマー向けで、FlashはアーティストやWebデザイナーにとってよりフレンドリーです。
Flashは、IDE)であり、(一般的に)アニメーションやタイムラインでうまく機能するものを作成するために使用されます。
Flexは、デスクトップに似たインタラクションを持つインターネットアプリケーションの作成に適しています。
フラッシュを使用する理由もちろん、より具体的にタイムラインに関連付けられた何かを行う必要がある場合は、もちろん!
私はFlashの自由が好きで、Flashにアセットを埋め込むのは非常に簡単で、Flexで行うには少し混乱します。
Flexで気に入っている点の1つは、最小限の労力で滑らかなアプリケーションを作成できることです。これは、Flashでは永遠にかかります。
フレックスで実行できることはすべてフラッシュで実行できますが、実行にかなり時間がかかる場合があります。ただし、フラッシュでできるすべてをflexで行うことはできません。
FlexがすべてのUIプログラミングを処理し、ビジネスロジックに集中できます。フラッシュを使用すると、UIのプログラミングに大部分の時間を費やすことになります。
Flexは、アプリケーションベースのソリューションを開発する必要があるRIAアプリケーションを実行するためのソリューションのようなものだと思います。 Flexを使用すると、すぐに使えるものがたくさんありますが、ファイルサイズ、粒度などの面でも代償が伴います。
一方、ゲームなどの完全にカスタムされたソリューションで作業している場合は、空白のキャンバスで最初からやり直すことができるため、おそらくFlashが適しています。 Flexプラットフォームのすべてのアプリベースの機能を必要としないため、多くの人々はまだFlashを使用しています。
LinuxでFlexアプリケーションを簡単に開発できますが、Flashでは簡単に開発できません。
ここで提案されていない別の解決策は、両方を使用することです。 ContainerMovieClip を使用して、フレックスコンポーネントをFlashムービークリップに追加できます。 SpriteVisualElement を使用して、Flashムービークリップをフレックスコンポーネントに追加できます。言及されなかったもう1つのことは、アプリケーションのレイアウトでした。フレックスレイアウトシステムが組み込まれているため、フラッシュデメリットに対するフレックスプロになります。ただし、両方を使用する場合は、フレックスレイアウトシステムを使用してムービークリップをレイアウトできます。
また、フレックスは Apacheトップレベルプロジェクト になります。そして、それは今やコミュニティーからますます除外されています。
FlashとFlexは2つの完全に異なるものです。1つはアクションスクリプトをサポートするデザインツールで、もう1つはアクションスクリプトも持つフレームワークですが、XMLベースのUI定義「言語」であるMXMLを中心に構築されています。