Flash と Flex の主な違いは何ですか? 私は Flash で 5 年以上の経験があり、Flash と ActionScript3 を使った開発に非常に慣れています。Flex にますます興味を持ち、flash と flex のどちらを使用するのが最適なのかを知りたいと思っています。また、MXMLでできることはすべてAS3でできるのでしょうか? AS3 と OOP についてよく理解しています。Flex で AS3 と MXML を使用する場合の違いを知りたいです。
7 に答える
Flash を使用して現在開発しているアプリケーションの種類によって異なります。私は Flash 開発者 (主にアプリケーション) として 7 年間働いています。Flash にはなかったコンポーネント フレームワーク (優れたコンポーネント、レイアウト マネージャーなど) を備えていたので、Flex 2 がリリースされたときは非常にうれしかったと正直に言わなければなりません。これが、Flash と Flex (または Flex フレームワーク) の最大の違いです。
特にデータ バインディングを使用する場合、MXML は本当に便利です。最終的に、すべてが ActionScript にコンパイルされます (-keep コンパイラ オプションをチェックしてください) が、MXML は時間を大幅に節約します。
すぐに UI を構築したい場合は Flex が最適です。機能する UI を数時間でモックアップできます。一部のカスタム UI ではまだ制限がある可能性があるため、すべてに完璧というわけではありませんが、何かが多かれ少なかれアプリケーションのように「見え」、グリッドに収まる必要がある場合は、MXML で UI をモックアップするのが非常に簡単です。また、ほとんどの Flex アプリの外観 (醜い、いも) に怯える必要はありません。すべてをカスタマイズしたり、独自のコンポーネントを簡単に作成したりできます。
actionscript を mxml に入れるのは、css や javascript を html に入れるのと同じ = 本当にまずい。残念ながら、アドビでさえこれを複数の例で示しています(おそらく、ほとんどの場合、デモンストレーションの方が簡単で高速であるためです)。私の個人的な意見では、データをUI(mxml)に入れたくないので、これはバインディングにも当てはまります。
経験豊富な開発者として、タイムライン上で開発を行うことはないと確信しています (Flash = タイムラインの誤解を明確にするため)。それでも Flex を使用すると、UI がフレームワークに分離され、レイアウトに関する多くの負担を処理できるため、ビジネス ロジックに集中できます。ワークフローの残りの部分は、おそらくすでに Flash で使用しているものに近いものです。
Flash と Flex は、さまざまなものを作成するためのさまざまな方法を提供します。私は Flash に詳しくありませんが、Flash は時間を重視して何かを作成する方法に依存していると思いますが、Flex はより伝統的なソフトウェア開発を対象としています。つまり、Flash で時間とフレームを処理するのではなく、コンポーネントを配置する場所を MXML で記述し、それらのコンポーネントが ActionScript でどのように機能するかを記述します。
また、MXML を必要とせずに AS3 だけで Flex アプリを作成できるはずです。
私の知る限り、Flex における AS3 と MXML の主な違いは、MXML はアプリケーション ロジックで使用することを意図したものではなく、Web ページで HTML/CSS のように使用し、コンポーネントやコンテンツを配置することを意図していることです。フレックスアプリ。ActionScript は、ビヘイビアー、コンポーネント、およびその他の外部のプログラム、または MXML が行うことをプログラムするために使用されます。したがって、イベントをコンポーネントにアタッチする場合は、ActionScript コードを記述します。
それが役立つことを願っています。私はまだ Flex について自分で学んでいます。
頭に浮かぶ他のいくつかの違い:
Flash を使用すると、グラフィック アセットを作成してすぐに操作できます。Flex で同じものを使用するには、まず Flash を使用してそれらを swf または swc にエクスポートする必要があります。
Flex にはレイアウト マネージャーがあるため、ウィンドウ サイズが可変のアプリケーションを作成するのは非常に簡単です。たとえば、ウィンドウを取り、ウィンドウの幅の 90% に設定すると、サイズが変更されます...拡大縮小は気にしませんが、ウィンドウが大きくなったり小さくなったりすると、実際には幅が変わります。これは、Flex フレームワークの外では簡単ではありません。
Flex でのデータ バインディングは、時間を大幅に節約します。基本的に、blah="{foo}" と指定するだけで、AS3 で記述する必要のあるすべてのコードが作成されます。中かっこは、「これにバインドする」ことを示します。
Flex デバッガーは、Flash デバッガーよりもはるかに優れています。プロファイラーもあります。
Flash ではなく Flex から始めたので、Flash 開発に最適な IDE の種類はわかりませんが、Eclipse ベースの Flex Builder は非常に優れています。コードのヒントは素晴らしいです。Subclipse の統合は素晴らしいです。
本当に、Flash と Flex は別物です。Flex を使用したい場合は、AS3 を知って理解する必要があります。そうすれば、Flex の機能を利用するのに最適な立場に立つことができます。Flash は、より視覚的にクリエイティブな作品を作成するためのツールとしてどこにも行きませんが、Flex はアプリケーション開発に多くの利点をもたらします。
Flash IDE よりも Flex の方が好きです (私のコメントでは、Flex Builder 別名 Flash Builder とも呼ばれます)。
一般的に、プロジェクトのサイズに依存すると思います。
Flash を使用すると、小さなプロジェクトをすばやく開始して終了する方が簡単だと思います。
Flex にはさまざまなデバッグ ツールがあり、時間を大幅に節約できるため、大規模なプロジェクトには Flex をお勧めします (ただし、私自身は Flash を使用します)。
しかし、実際にフレックスに慣れれば、それは問題にならないかもしれません。
私の経験からFlexのいくつかの短所。
- 大規模なプロジェクトで 4 人のチームで作業しているときに、Flex がプロジェクトを維持できなかった
- あるコンピューターから別のコンピューターへの設定。(SVNを使用してファイルを共有しました)
- Flex は常に SVN と競合していました。
- 美術品とは距離を感じました。
Flex の長所
- ボタンをクリックするだけで、あるクラスから別のクラスへの変数参照をたどることができます。
- デバッグ中に多くの変数を簡単に確認できます。それらを追跡する必要はありません。
- Flash にはカスタム クラス コードのヒントがありませんでしたが、CS5 ではヒントがありました。
- 新しい Flash CS# を待たずに Flash Player の最新機能を使用できると思います。たとえば、MoleHill (GPU を使用する新しい 3d API) は現在ベータ版をリリースしています。Flex SDKはすでにそれを使用できると思います。お役に立てれば。
私はフレックスを好まないまれなケースであることに注意してください。ほとんどの人はフレックスを強く好むので、少なくとも試してみてください。
フラッシュ CSx:
- GUI\Layout : 基本的な GUI クラス フレームワーク
- グラフィカル コンテンツ: アニメーションの有無にかかわらず、グラフィカル ライブラリ オブジェクトの編集に最適
- コード: 優れたコード エディターがない
Flex/Flash Builder + Flex フレームワーク:
- GUI\Layout : 高度な GUI クラス フレームワークとレイアウト エンジン (Flex)
- グラフィック コンテンツ: Flash の描画機能はありませんが、Flash で生成されたグラフィックを、ActionScript 用に SWC にエクスポートし、Flash Builder で SWC をインポート/参照することで含めることができます。
- コード: Flash よりもはるかに優れたコード エディター。FlashDevelop と同等かどうかは不明
- その他: MXML をサポートします。これは基本的に、コンテンツをレイアウトするもう 1 つのスタイルです。「c = new C()」、「c.prop = x」、「c.addChild」などの一連のコードを記述する代わりに、XML コンストラクトを使用して表示オブジェクトとその子を構造化すると、MXML コンパイラがそれを変換します。読みにくいですが、基本的に同じ AS3 コードに戻ります。
これらのテクノロジーはすべて関連しており、相互運用可能です。これらは Flash プレーヤーと ActionScript テクノロジの自然で予測可能な拡張機能ですが、何らかの理由で Adobe は Flex/Flex-builder/MXML テクノロジをまったく別の製品として開発し、まったく新しい、非常に驚くべきものとして販売しています。なんでもいい。そのため、すべての機能を使用するには 2 つの間を行き来する必要があり、これが LAME です。また、Flash コンテンツを Flash Builder に取り込むために必要な手順の数を減らすために、「Flex コンポーネント キット」などの不要ではあるが役立つパッケージを開発するために、時間とリソースを浪費する必要があります。
Flash Builder にはグラフィック編集機能がなく、Flash CSx には MXML と優れたコード エディターがないため、相互に排他的な機能があるため、これらのアプリケーション間を行き来する必要がありますが、Flex を使用できるという意味では相互運用性があります。 Flash のクラス、Flex の Flash クラス (およびそれらに埋め込まれたグラフィックス)、Flex なしで Flash Builder と MXML を使用できます。
真に統合された単一の Flash IDE が必要だと思うので、Flash Builder を Flash CSx エディタに統合する必要があります。
MXML はアクション スクリプトにコンパイルされるため、実際にはその上位バージョンのようなものです。つまり、MXML で実行できることはすべて actionscript で実行できます (ただし、その逆はできません)。