ツール
アドビは、swfファイルを作成するためのツールを多数開発しています。Flash Professional、Flash Builder(以前の名前はFlex Builder)、Flash Catalystなどです。それぞれのツールは、異なるスキルを持つデベロッパーやデザイナーを対象としています。
Adobe Flash Builder
Adobe Flash Builderは、デベロッパー向けのEclipseベースの開発ツールです。このIDEでは、Flexフレームワークを使用してswfファイルを作成します。
Flash Builderは、Flexアプリケーション開発を容易にするために、インテリジェントなコードヒントおよびコード生成、リファクタリング、コンパイル時エラーチェック、インタラクティブなステップ式デバッグ、ビジュアルデザインによるユーザーインターフェイスのレイアウトとスタイル指定などの機能を備えています。
フレームワークと言語
アプリケーション作成のための開発ツールに加えて、アドビは、デベロッパーが豊富な機能を持つ堅牢なアプリケーションをすばやく容易に作成できるようにするフレームワークも作成しています。
Adobe Flex
Adobe Flexは、ActionScriptクラス(ActionScriptはFlash Player用のスクリプト言語)のライブラリと実行可能ファイルから構成される無料のオープンソースフレームワークであり、アプリケーションの開発、コンパイル、インタラクティブなデバッグをすばやく容易に行えるようになっています。
Flexフレームワークには、100種類を超える拡張可能なコンポーネントのクラスが含まれています。この中には、UIコントロール(ボタン、リストボックス、スライダー、ステッパー、データグリッド、チャートなど)、コンテナ(VGroup、HGroup、Panel、Formなど、適応性のあるアプリケーションインターフェイスの構築に役立つもの)、マネージャー(スタイル、ドラッグ&ドロップ、フォーカス、ポップアップ、カーソル、ブラウザ履歴、ディープリンクなど)、リモートプロシージャーコール(HTTP要求、Webサービス、リモートオブジェクト)、フォーマッター、バリデーター、ユーティリティなどが含まれます。
Tour de Flexアプリケーションは、Flexフレームワークについて調べ、様々なコンポーネントの動作を確認するために使用できます。
ActionScript
Flexアプリケーション(Flexで作成したswfファイル)は、ActionScriptとMXMLという2つの言語で作成します。
ActionScriptは継承に基づくオブジェクト指向スクリプト言語であり、ECMAScript標準に基づいています。最新バージョンのActionScript 3は、ECMA-262第4版に基づいています。この版は、提案はされましたが、承認と公開は行われませんでした。
構文とオブジェクト指向機能は、Javaによく似ています。クラスを定義して拡張し、インターフェイスを定義して実装し、private、public、protected、内部(パッケージ)の名前空間を使用します。Javaと異なる点は、クラスを定義する際にpackageキーワード内部で中括弧を使用すること、メソッドの定義にfunctionキーワードを使用すること、Javaで用いられるデータ型接頭辞の代わりにコロンの後のデータ型指定を使用することです。
また、データ型指定はオプションです。すべてのデータに型を指定すれば、IDEのコードヒントや、コンパイル時と実行時の型チェックが利用できます。一方、柔軟性が必要な場合は動的型指定も使用できます。
MXML
MXMLは便宜のための言語です。宣言的なタグベースのXML構文を使用して、ActionScriptを生成する方法を提供します。
アプリケーションをコンパイルすると、MXMLが解析されてメモリ上でActionScriptに変換され、ActionScriptがバイトコードにコンパイルされてswfになります。
MXMLはまったく使用しないことも可能ですが、通常はアプリケーションインターフェイスの定義に用いられ(レイアウトを定義するには、MXMLコードのほうが対応するActionScriptコードよりも簡潔でわかりやすくなります)、ActionScriptはアプリケーションロジックの作成に用いられます。ロジックが別々のActionScriptクラスに分割されるように、MXMLコードも再使用可能な別々のMXMLコンポーネント、すなわち別々のActionScriptクラスに分割できます。
サードパーティ製メッセージングフレームワーク
Granite DSは、LiveCycle Data Services(後述)の代わりとなる無料のオープンソースフレームワークであり、Flex/EJB 3/Seam/Spring/Guice/POJOアプリケーション開発のための、AMF3/RemoteObjectの利点をすべて備えたフレームワークを提供します。
Midnight Codersが提供しているWebORB for Javaは、Flex(およびFlash、AJAX、Silverlightクライアント)を、Javaオブジェクト、Spring Beans、EJB(v1またはv3)またはXML Web Services、ネイティブオペレーティングシステムリソース、リッチメディアストリーム(オーディオ、ビデオ)と接続する機能を持ちます。