このマスターシリーズでは、コーディング環境の強化、Creative Suiteシリーズの連携など、Flash Builder 4.5の新機能について解説します。

第1回では、コーディング環境を改善する機能を中心に解説しました。本記事では、その他の変更点や改善点、そして開発する上で便利な機能について解説します。

Flash Builder 4.5での変更点

Plug-in版のインストール方法を変更

従来は、スタンドアロン版とEclipseのPlug-in版の両方を使いたい場合、巨大なインストーラを別々にダウンロードする必要がありました。また、Flash Builderを使用するEclipseを増やす場合、ほぼ同じプラグインやフィーチャーが複数インストールされてしまうという仕様でした。

しかし、バージョン4.5からはPlug-in版のインストール方法が変更となり、スタンドアロン版のインストール時に含まれるユーティリティ「FB_4_5_Plugin_Utility」(Mac版では「Adobe Flash Builder 4.5 Plug-in Utility」)を使って、既存のEclipseにリンクする仕様となっています。これにより、同じプラグインやフィーチャーが複数インストールされることなく、Flash Builder 4.5を使用するEclipseを増やしていくことができます。

Plug-in版と統合されたことで、これまでのPlug-in版と同様のフォルダ構成に変更されています。Flash Builder直下にあったpluginsやfeatureフォルダがeclipseフォルダ以下まとめられています。

Flash BuilderにJDTを同梱

ベースとなるEclipseのplug-inにJDT(Java Development tools)が同梱されるようになりました。従来はスタンドアロン版で以下の作業を行う場合、アップデートサイトから導入する必要がありましたが、最初から導入されているので追加設定なしに行うことができます。

  • Flex Tasks(Ant)を使ったコンパイル。
  • サーバーサイドをJavaで開発する際のプロジェクト作成。
  • Android Development Tools(ADT)の導入。

Flash Builder 4.5の便利な機能

ASファイルやMXMLファイルの関連付けが可能

ASファイルやMXMLファイルの関連付けができるようになりました。他のアプリケーションをインストールした際に関連付けが変更されても、Flash Builder 4.5で再度設定することができます。

デバッグ用Flash Playerの指定

コンパイラーの設定でHTMLラッパーの生成を選択しない場合、デバッグはスタンドアロン版Flash Playerで行われます。Flash Builder 4.5では、そのときに起動させるFlash Playerを指定することができます。複数のFlash Playerがインストールされている環境であれば、プロジェクトで使用するバージョンのFlash Playerを指定してデバッグすることが可能です。

ショートカットの活用

Flash Builder 4.5では、Eclipseベースの便利なショートカットを使えます。Flash Builderでも使えるものを以下にピックアップします。

Flash Builderで使えるショートカット

クイックアクセス Ctrl(Mac版Cmd) +3 ※下参照
型を開く Ctrl(Mac版Cmd) + Shift + T フレームワークで定義されているクラスやインターフェイスを検索することができます。コードを見たいときや、既存のコンポーネントのソースを元にカスタムで作成したいときに素早くアクセスすることができます。
リソースを開く Ctrl(Mac版Cmd) + Shift + R プロジェクト内のMXMLファイル、プロパティファイル、ActionScriptのクラスを探すときには、このショートカットを使うと便利です。
宣言を開く F3 クラスやコンポーネント、メソッド呼び出しにおいて「Ctrl(Mac版Cmd)+クリック」すると実際にその宣言をしているコードを表示することができますが、マウスクリックの替わりに「カーソル選択+F3キー」を押すことで同様に表示することができます。
アプリケーションのデバッグ Alt(Mac版option) + Shift + D Flexアプリケーションをデバッグするときに押すと、右下にキーアシストが表示されるので、アプリケーションのタイプ(AIR/モバイル/Webなど)を選択するか、該当するキーを入力すると、Flex/AIRアプリケーションのデバッグを行うことができます。
import文の整理 Ctrl(Mac版Cmd) + Shift + O 不要なimport文を削除し、カテゴリーごとに並べ替えて整理します。
行のコピー Ctrl (Mac版Cmd)+ Alt(Mac版option) + ↑または↓ 現在カーソルがある行をコピーします。
行の移動 Alt(Mac版option) ↑または↓ 現在カーソルがある行から移動します。
行の削除 Ctrl (Mac版Cmd)+ D 現在カーソルがある行や選択している部分を削除します。
CDATAの追加 Ctrl (Mac版Cmd)+ Shift + D カーソルで選択した部分にCDATAブロックを追加します。
キーアシスト Ctrl (Mac版Cmd) + Shift + L 「Ctrl(Mac版Cmd) + Shit + L 」を押すと、画面右下にショートカットの一覧が表示されます。 ここから選択することで、ショートカットに割り当てられた機能を呼び出すこともできます。

【クイックアクセス Ctrl(Mac版Cmd)+3】
Flash Builder4.5/Eclipseの設定画面やエディタなどを検索して切り替えることができます。設定画面の深い階層にあるような画面を開くときや、エディタで表示しているコードを素早く切り替えたいときなどに利用すると便利です。

Mac版のFlash Builderを日本語環境で使う場合、文字変換した後、tabキー(Enterキーだとキャンセルされてしまいます)で選択する必要があります。Windows版では特に問題ありません。

RSLの強化

Flash Builder 4.5ではランタイム共有ライブラリ(runtime shared libraries、以下RSL)についても改善されています。ビルドパスに設定しているライブラリでリンクをRSL指定していても、アプリケーションで使用されないライブラリは削除できるようになりました。実際に試してみましょう。

新規のFlexプロジェクトを作成します。このとき[アプリケーションの種類]で[Web(Adobe Flash Playerで実行)]を選択します。作成したプロジェクトを選択して、右クリックで[プロパティ]を選んで[プロパティ]ウインドウを開き、[リソース]→[Flexビルドパス]→[ライブラリパス]タブを選択します。デフォルトでは、[フレームワークのリンク]は[SDKのデフォルトを使用する(ランタイム共有ライブラリ)]が選択されており、また[未使用のRSLを削除]にチェックが入っています。

このままコードを変更せずにアプリケーションをコンパイルすると、実際に使用されていないRSLが削除され、以下の3つのみがリンクされます。

  • framework_4.5.0.20967.swf
  • spark_4.5.0.20967.swf
  • textLayout_2.0.0.232.swf

アプリケーションのデバッグを実行してコンソールに出力されるログを見ると、Mainアプリケーション以外にロードされるRSLが3つであることが確認できます。

[SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf - 166,372 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\1 - 763,122 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\2 - 1,221,837 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\3 - 2,019,570 バイト (圧縮後)

先ほどの設定で[未使用のRSLを削除]のチェックを外すと、以下のように使用されていないRSLも出力されます。

  • advancedgrids_4.5.0.20967.swf
  • charts_4.5.0.20967.swf
  • framework_4.5.0.20967.swf
  • mx_4.5.0.20967.swf
  • osmf_1.0.0.16316.swf
  • rpc_4.5.0.20967.swf
  • spark_4.5.0.20967.swf
  • spark_dmv_4.5.0.20967.swf
  • sparkskins_4.5.0.20967.swf
  • textLayout_2.0.0.232.swf

また、デバッグ実行時に出力されるログを見ると、10個ともロードされていることが確認できます。

[SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\1 - 763,122 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf - 166,374 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\2 - 1,221,837 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\3 - 529,577 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\4 - 1,136,788 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\5 - 446,779 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\6 - 563,567 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\7 - 2,019,570 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\8 - 524,778 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\9 - 318,334 バイト (圧縮後) [SWF] C:dev\workspaces\Adobe Flash Builder 4.5\adc7\bin-debug\Main.swf\[[DYNAMIC]]\10 - 13,585 バイト (圧縮後)

ここでプロジェクトの設定で再度[未使用のRSLを削除]にチェックを入れて、MainのMXMLファイルを編集します。以下のようにmxコンポーネントのButtonを追加してコンパイルすると、2つのRSLが追加されます。

  • mx_4.5.0.20967.swf
  • sparkskins_4.5.0.20967.swf
mx コンポーネントのボタンを追加 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 --> </fx:Declarations> <mx:Button id="mxButton1" label="Pushme!" /> </s:Application>

mxコンポーネントを使用しているので、mxとそのスキンクラスであるsparkskinsの2つが削除されずに出力されたというわけです。

Flex 4まではmxのコンポーネントセットはframework.swcに含まれていましたが、Flex 4.5からはmxのコントロールやコンテナなどといったSparkコンポーネントで代替できるものについては分離されてmx.swcに移動されています。これにより、framework.swcに含まれるのはsparkとmxの両方で共通するクラスのみになりました。

アプリケーションで使用するコンポーネントセットによっては、出力されるRSLの数と容量が減るため、ロードと起動を高速化することができます。

出力されるRSLの数と容量

RSLとして出力されるライブラリ(Debug) Flex 4.1 Flex 4.5
framework.swf 1,045,994 バイト 540,041 バイト
mx.swf - 528,278 バイト
spark.swf - 747,978 バイト
sparkskins.swf - 69,341 バイト

任意のRSLを強制的に読み込む

[未使用のRSLを削除]にチェックを入れるとアプリケーションで使用しないRSLは削除されますが、設定で任意のRSLを強制的にロードさせることができます。通常アプリケーションで使用されるライブラリは、コンパイラーが自動的にチェックしてRSL出力対象となりますが、フレームワークなどで間接的に参照されているケースがあります。そうしたライブラリをコンパイラーに任せずに強制的にロードさせるときには、プロジェクトの設定で変更します。

プロジェクトの[プロパティ]ウインドウを開き、[リソース]→[Flexビルドパス]→[ライブラリパス]タブを選択します。[ビルドパスライブラリ]で、RSLでリンクしているライブラリの中から強制的に読み込むswcを選択し、リンクタイプを表示します。

リンクタイプをダブルクリックして[ライブラリパスアイテムオプション]ウインドウを表示します。[RSLの読み込みを強制]にチェックを入れて設定画面を閉じます。

コンパイルすると、アプリケーションで使用していないRSL(ここではrpc.swc)も出力されるようになります。

なお、このRSLの強化はFlex 4.5のコンパイラで行われているので、SDKのバージョンを以前のバージョンにするとグレーアウトして無効化されます。

おわりに

前回に引き続き、Flash Builder 4.5での変更点/改善点、そして便利な機能について解説しました(合わせて、Flex 4.5で強化されたRSLについて、Flash Builder 4.5での変更点とともに解説しました)。特にRSLの改善点により、同じソースコードでもFlash Builder 4.5+Flex SDK 4.5でコンパイルするだけで、プロジェクトの初期設定で不要なRSLが削除されるためサイズが小さくなり、アプリケーションのロード時間が短くなります。この改善点は、モバイル開発のためだけでなく、Webアプリケーションでも有効です。Webアプリケーション開発者にとっても、Flex 4からFlex 4.5への移行を検討する要素となりえるでしょう。

モバイル開発用に強化された機能やFlash Catalystとの双方向編集については次回以降で詳しく紹介する予定です。合わせてご覧ください。

関連記事