Apache Flex 4.10.0 と軽く戯れる

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

昨日、Apache Flex 4.10.0 のリリースがアナウンスされました。
https://blogs.apache.org/flex/entry/apache_flex_announces_the_release

このバージョンは、アドビ システムズ社が最後にリリースした Flex 4.6 と互換性を保っています。

リリースノート

主な更新内容ですが

  • 200 件以上のバグ修正
  • DataGrid リニューアル
  • Spark の実験コンポーネント追加
  • Flash Player 11.8、11.7、11.6、11.5 のサポート
  • AIR 3.8、3.7、3.6、3.5 のサポート
  • AIR 2.6、2.7、3.0 のサポート
  • など

とのことです。詳細は下記リンク先に記載されています。
http://ftp.tsukuba.wide.ad.jp/software/apache/flex/4.10.0/RELEASE_NOTES

追加クラス

Flex 4.6 と diff を取ってみました。
DataGrid 以外に、TLF も色々更新されているようです。

\frameworks\projects\airframework\assets\ComputerIconMain.as
\frameworks\projects\framework\assets\Assets.as
\frameworks\projects\mobilecomponents\src\MobileComponentsClassesAIR2.as
\frameworks\projects\mobiletheme\src\MobileThemeClassesAIR2.as
\frameworks\projects\spark\src\spark\collections\SubListView.as
\frameworks\projects\spark\src\spark\components\BusyIndicator.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridColumnHeaderView.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridDimensionsView.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridDoubleClickMode.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridHeaderLayout.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridHeaderViewLayout.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridItemEditorActivationMouseEvent.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridView.as
\frameworks\projects\spark\src\spark\components\gridClasses\GridViewLayout.as
\frameworks\projects\spark\src\spark\components\gridClasses\DataGridDragProxy.as
\frameworks\projects\spark\src\spark\components\supportClasses\RegExPatterns.as
\frameworks\projects\spark\src\spark\components\supportClasses\IDataProviderEnhance.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\CellContainer.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\IExplicitFormatResolver.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\TableBodyElement.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\TableColElement.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\TableColGroupElement.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\TableDataCellElement.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\TableElement.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\TableFormattedElement.as
\frameworks\projects\textLayout\src\flashx\textLayout\elements\TableRowElement.as
\frameworks\projects\textLayout\src\flashx\textLayout\formats\BorderColor.as
\frameworks\projects\textLayout\src\flashx\textLayout\formats\BorderStyle.as
\frameworks\projects\textLayout\src\flashx\textLayout\formats\BreakStyle.as
\frameworks\projects\textLayout\src\flashx\textLayout\formats\ColorName.as
\frameworks\projects\textLayout\src\flashx\textLayout\formats\TableFrame.as
\frameworks\projects\textLayout\src\flashx\textLayout\formats\TableRules.as
\frameworks\projects\textLayout\src\flashx\textLayout\operations\InsertTableElementOperation.as

SDK の取得

しばらく見ないうちに Apache Flex SDK Installer が賢くなっていました。
起動すると Flex version, AIR version, Flash Player version をそれぞれ選択できるので、今回はすべて最新 ( Flex 4.10.0, AIR 3.8, Flash Player 11.8 ) にします。

任意のダウンロード先を選択します。

各 SDK, ライブラリなどのライセンスに同意するため、"Required" 項目のチェックボックスにチェックします。

Apache Flex SDK (Apache V2 License)

Adobe AIR SDK (Adobe AIR SDK License)

Adobe Flash Player playerglobal.swc (Adobe Flex SDK License)

SWFObject (MIT License)

OSMF (Mozilla Public License Version 1.1)

Adobe Embedded Font Libraries and Utilities (Adobe Flex SDK License)

Remoting SUpport (Adobe Flex SDK License)

INSTALL ボタンを押すとインストールが始まるので完了を待ちます。

Flash Builder 4.7 上で SDK を使用する

登録

取得した Flex SDK を Flash Builder 4.7 に登録します。

任意の Flex プロジェクトを作成して、登録した SDK を選択すれば Apache Flex 4.10.0 と戯れることができます。

詳細 Telemetry オプション

個人的に推したい 4.10.0 の新機能は、詳細 Telemetry オプションの追加です。
今まで ASC 2.0 を使用した ActionScript プロジェクトでのみ利用ができた詳細 Telemetry が Flex プロジェクトでも使用できるようになり、Adobe Scout で徹底的にプロファイリングできるようになりました。

ただし、Flex プロジェクトのプロパティオプションには「詳細 Telemetry を有効にする」オプションが用意されていないので、追加コンパイラ引数に

-advanced-telemetry

と入力します。

下記画像では、Flash Player 11.8 向けに書き出すため

-swf-version=21

とも指定しています。

難点

検証不足なのですが、少なくとも私の環境で Flex 4.10.0 の新機能を使用した状態でリリースビルドを書き出そうとすると、Flash Builder 4.7 の内部エラーが起き、思うようにエクスポートできませんでした。( デバッグビルドは書き出せます )

なので、Ant から mxmlc を叩いてリリースビルドして、Scout で見た結果が以下の通り。
「セッション情報」パネルの「Telemetry」タブにて、「ActionScript メモリ割り当て」以外が有効になっています。( デバッグビルド時のみ「ActionScript メモリ割り当て」は有効になります)

雑感

Flash Builder 4.7 との相性が微妙な点以外は普通に利用できそうです。
ただし、コードヒントが貧弱すぎるので実案件投入はリスキーではないかという印象を受けました。