Recently in Flex Builder Category

Flash Builder 4 と Flex 4 SDK のベータ 2 が Adobe Labs に公開されました。(Flash Builder 4@Labs, Flex 4 SDK@Labs

ダウンロードは以下の URL からどうぞ。SDK については Adobe オープンソースサイトからダウンロードできるものと同じです。

以前のバージョンをインストールしている場合、上書きインストールはせず、一旦アンインストールするか新しい環境にインストールする必要があります。また、ダブルバイトを含むパスにインストールすると制限を受ける機能があります。その場合は、

    1. インストールしたフォルダ内の "eclipse" and "sdks" の 2 つのフォルダををコピー
    2. 上の 2 つのフォルダを eclipse-host-distro の下の dropins フォルダにペースト
    3. dropins folder から ".link" ファイルを削除

を試してみてください。

サポートされる OS は以下のようになります。

Flash Builder 4 のプロファイラの話の続きです。

本題に入る前に、前回書き忘れた点をいくつか。

  • プロファイリングからできるだけ正確な情報を得たい場合、デバッグ用の SWF やデバッグプレーヤーは使わないようにします。余計なものまで計ってしまいますので。
  • 一方、だいたいの傾向が分かれば良い場合 (ラフチューニング中とか) は、デバッグプレーヤでも十分。
  • あと、FB、Flash Player 共にできるだけ最新のバージョンを使うことをお勧めします。
  • 最後に、Flex Builder 3 には Standard 版と Professional 版がありますが、プロファイラの機能が付いているのは Professional 版のみです。

では、続きに戻って、

下はメモリ使用量を示すウインドウです。ウインドウ内にはピークメモリと現在のメモリ使用量が表示されます。

fbmemoryusagewindow.jpg

グラフは秒単位で更新され、最新の 100 秒分が表示されます。残念ながら、ウインドウを大きくしても表示される期間は 100 秒から変わりません。

「ピークメモリ」 は見てのとおり、測定開始からのメモリ使用量の最大値です。 「現在のメモリ」 として表示される値は、実行されている SWF 内に存在するインスタンスが占めているメモリ量です。

他のメモリ測定方法との関係

ところで、Flash Player はインスタンス毎ではなく 4KB のブロック単位でメモリを獲得します。また、個々のブロックが隙間無く使われている訳では (たいていは) ないでしょう。とすると Flash Player が SWF の実行のために割り当てたメモリ量は、上のグラフで示される値 (実際にインスタンスが占めているメモリ量) より多いと考えてよさそうです。

先日の Flash OOP の時の話題からの 2 回目です。Flash Builder 4 のプロファイラで Flash Professional からパブリッシュした AS3 の SWF (Flex アプリではない) もプロファイリングできるという話です。

profilerscreenshot.jpg

プロファイラはだいたい以下のような時に役に立ちます。

  • 実行時のメモリ使用量を減らしたい場合
  • メモリリークがあるかどうかを調べたい場合
  • 実行時の速度を速くしたい場合

なので、使いこなせるようになると結構便利です。どのあたりをチューニングすれば良さそうか、オブジェクト毎のメモリ使用量やメソッド実行にかかった時間など、具体的な情報を確認しながらスクリプトの修正することが出来ます。

ちなみに現行製品の Flash Builder 3 のプロファイラも同様に使用できたりします。FB4 のプロファイラの方が使いやすいのでお勧めしたいところですが、まだバグも多いようなので FB3 の方が安心かもしれません。(どちらにせよドキュメントには Flex アプリ以外の利用については明記されていないのでサポート外にはなります ... FB4 は名前も Flash に変わったことですし、サポートするようになると良いのですが)

さて、プロファイラを使用する際の手順ですが、

Flex Builder の次のバージョンから名前が Flash Builder に変更される旨のポストが先週末にありました。

これは Flex Builder 上で Flex フレームワークを使わずに Flash 向けのコンテンツを ActionScript だけで開発するユーザが増えてきたことを踏まえて、Flex Buider も Flash プラットフォーム向けの開発ツールのひとつであるという位置づけを明確にするためのブランディング戦略とのことで、製品の位置づけや機能自体が代わるという話では無いそうです。Flash Professional, Flash Catalyst とあわせて、ツールは全て Flash ブランドということになります。

オープンソースの Flex SDK に関しては名前の変更はありません。製品とオープンソースの区別を明確にしたい、というのも今回の変更の背景にあるようです。

Flex 3.1 SDK 公開に合わせて Flex Builder 3.0.1 が公開されています。Flex 3.1 SDK、Ganymade 対応など、修正項目は Flex バグサイトにリストがありますのでご覧ください。(3.0.1 FBFixedBugs

FB 3.0.1 は Adobe アップデータからもインストールできます。3.1 SDK を追加ではなく置き換えますのでご注意ください。

既にお伝えしましたように、現在 Adobe Labs に公開されている Flex Builder 2.0.1 用 Apollo 機能拡張は日本語版の Flex Builder とのテストが行われていません。やはり日本語版で使えたほうが便利ですし、本当に動かないのか様子を見るためにとりあえず2週間ほど社内数名で使ってみたところ特に問題が起きたりすることはありませんでした。

テスト用途であれば使用できるレベルのように思われますので、Flex Builder 2.0.1 日本語版に Apollo 機能拡張をインストールする際の手順をお伝えします。サポートはありませんのであくまで自己責任にはなりますが、よろしければ参考にしてください。

  1. Adobe Labs から Apollo 機能拡張をダウンロードします。(Adobe Labs Downloads Apollo
  2. Flex Builder 2.0.1 日本語版に Apollo 機能拡張をインストールします。ビルド番号に対する警告パネルが表示されますがそのまま続行します
  3. \plugins\com.adobe.flexbuilder.components.config.nl1_2.0.160522\nl\ja\config\components に apollo.xml をコピーします
  4. \plugins\com.adobe.flexbuilder.editors.mxml_2.0.160522\resources に componentToExtensionMap.xml をコピーします
  5. もし Apollo ランタイムがインストールされていなければインストールします

以上です。必要はファイルは zip ファイルにまとめてありますのでダウンロードしてください。(ApolloFBExtJ.zip:1.7KB)

先日 AS3 のサンプルコードの件でご指摘をいただきましたので (ありがとうございます) 修正しておきました。(コンストラクタ (と Singleton)) なにぶんベータ期間に書いたもののため、他にも不具合があるかと思われます。人任せで恐縮ですが、なにか見つけた際にはコメントをいただければ幸いです。

さて Flex Builder 2 が今年度の Eclipse Community Awards で商用開発ツールの次点に選ばれました。(Eclipse Foundation Community Awards Announcement) 一位ではないもののおめでたいことですのでお伝えしておきます。

それから、US の Flex のユーザの方に Flex Builder 2 の機能拡張プラグインとして Cairngorm プラグインを開発している人がいます。(Introducing Cairngorm Plugin) 現時点ではスクリーンショットが何点か公開されており (Cairngorm Preview Gallery)、あと2週間ほどでリリースできる見通しとのことです。

Labs に Mac 版 Flex Builder 2 のプレリリース版が公開されました。こちらのページです。(Flex Builder 2 for Mac@labs

今回公開されたバージョンの実行環境は Intel Mac と PowerPC 両方がサポートされます。 OS は 10.4.7 指定です。プラグイン版では Eclipse が別途必要です。Eclipse のバージョンが 3.2 (SUN JRE 1.5) なので注意してください。

製品出荷は 2007 年の早いうちを予定、日本語版も同年中には出荷予定。価格は Windows 版と一緒の予定だそうです。

ActionScript3 は動的言語ですので、実行時につじつまが合えば型の指定は省いても構わない、という記述方法が可能です。とりあえず単純な例としては、

var forDebug; // 型指定なしの宣言
forDebug = 0; // 数値を代入 trace(forDebug);
forDebug = "1"; // 文字列を代入 trace(forDebug);

FlexBuilder2 インストール時の状態でアプリケーションを実行するとシステムデフォルトのブラウザが起動されます。テストを行うには FlashPlayer8.5 が必要ですが、普段使うブラウザに開発段階のプラグインをインストールしておきたくない、ということもあると思います。(いろいろテストしていただけると本当はうれしいのですが) そこで、ブラウザの設定について説明します。