Recently in Flash Category

MAX で Flash Professional CS5 に関するアナウンスがありました。Flash Professional CS5 では ActionScript 3 のプロジェクトから iPhone アプリを直接書き出すことができるようになります。

こちらのページに、iPhone を使ったデモのビデオや、実際に Apple ストアからダウンロードできるサンプルがありますので是非ご覧ください。(Applications for iPhone@Labs

Flash Professional CS5 の主な新機能は以下の通りです。

  • AS 3 のプロジェクトから iPhone, iPod Touch 用アプリケーションの書き出し
  • Text Layout Framework (TLF) を用いた新規のテキストコントロールによる新しい表現
  • XML ベースの FLA ファイル (ソース管理システムを使ったバージョン管理が可能に)
  • コードスニペットパネル (事前に作成済みのコードをプロジェクトでそのまま利用)
  • Flash Builder の統合 (ActionScript エディタとして使用できる)
  • ActionScript エディタの改良 (コードヒントや自動補完機能など)

Flash Professional CS5 のパブリックベータは年内に公開予定です。こちらのページから事前登録が可能です。(Adobe Flash Professional CS5@Labs

なお、今回のアナウンスは、iPhone 用の Flash Player に関するものではありません。

そのため、Web 上の SWF コンテンツを iPhone で表示したり、Flash CS5 で開発した iPhone アプリに SWF を読み込むことは残念ながらできません。

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 に変わったことですし、サポートするようになると良いのですが)

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

Flash プラットフォーム上の 2 つの新しいオープンソースプロジェクトが発表されました。どちらも、Adobe Labs に公開されていた技術 (の一部) をオープンソース化したもので、Mozilla Public License 下で公開されます。

  • Open Source Media Framework (OSMF) : Flash 上のメディアプレーヤーを開発するためのフレームワーク
  • Text Layout Framework (TLF) : Flash の新しいテキストエンジンを利用したコンポーネントを開発するためのフレームワーク

Open Source Media Framework (OSMF)

OSMF (http://www.opensourcemediaframework.com/index.html) は、メディアプレーヤーを開発する際に必要とされる機能をオープンソースのフレームワークとして提供するものです。提供される機能には、再生/停止等のコントロールやプレイリスト作成、データストリームのバッファリングなどがあり、Flash Professional や Flex Builder を使って、これらの機能からメディアプレーヤーを組み上げることになります。

ダウンロードは上記のリンク先から Download と書かれたリンクを辿ると専用のページを表示できます。また、英語ですがオンラインのドキュメントも公開されています。(Open Source Media Framework API

現在公開されているバージョンは 0.3 です。ロードマップ (Features and Roadmap) を見ると、実装されている機能はまだごく一部のみで、バージョン 1 がリリースされるのは 2 月頃まで待つことになるようです。ちょっと先が長いので使いたい機能が揃った頃に使い始めると良いかもです。

あとは、コンテンツ配信や広告管理それからアクセス分析用のプラグインも提供される予定です。これらのプラグインは OSMF 上で商用サービスを手供する手段としての利用が想定されています。プラグインを提供予定の企業リストはこちらのページにあります。(planned plug-in providers) ページ内のタブをクリックすると各カテゴリーのパートナーが表示されます。ちなみにパートナーはまだ募集中のようです。

Text Layout Framework (TLF)

TLF は昨秋から Adobe Labs にも公開されていましたし (Text Layout Framwork@Labs) もう既にご存知の方も多いと思いますが、Flash Player 10 と AIR 1.5 から搭載された新しいテキストエンジン上に構築されたフレームワークです。

Flash Player の新しいテキスト API を直接使って拡張されたテキスト機能を使いこなすのは Flash Player 内部のデータモデルを多少なり理解する必要があったりしてちょっとハードルが高いのですが、そういったデザインには余分な知識の習得に時間を使わなくてもテキストの自由なレイアウトが行えるようにということで開発されたのが TLF です。その TLF のコードがオープンソースとして提供されるようになったというのが今回の発表です。

TLF のコードは Flex 4 SDK ベータ版の一部としてダウンロードすることが出来ます。(Gumbo downloads) もしくは、とりあえず Flash CS4 や Flex Builder 3 で使ってみたいという場合は去年の 11 月に公開されたままですが Labs から必要なファイルをダウンロードしてお使いください。(Text Layout Framework Download

実際に TLF が利用されている例としては、New York Times の TimesReader 2.0 や Boston Globe の GlobeReader 等があります。

Flash Media Server のセキュリティアップデートが公開されました。

今回のアップデートは、FMIS または FMSS 上で実行されるアクションスクリプトファイルから攻撃者が RPC を実行できる脆弱性が見つかったことに対応するものです。管理者の方には、できるだけ早く最新版 (3.5.2 または 3.0.4) にアップデートすることをお勧めします。

ダウンロードはこちらのサイトから。(Updates/Flash Media Server

Flash CS3 および Flash 8 関連のセキュリティ情報が公開されました。(Flash CS3 Professional、Flash Professional 8およびFlash Basic 8における潜在的な脆弱性

Windows 版に fla ファイルを利用した攻撃に悪用できる脆弱性が見つかったという報告です。怪しい fla ファイルを受け取ったら開かないよう注意してください。この問題は時期メジャーリリースで修正予定とのことです。

Adobe AIR ベータ 3 に対応した Flash CS3 Professional のアップデートがちょっと遅れて公開されました。(AIR:Flash_CS3_Professional_Update@Labs

今回サポートされるプラットフォームは以下の通りです。

  • Windows® XP sp2
  • Windows® Vista Home Premium, Business, Ultimate, Enterprise (certified for 32-bit) editions.
  • Mac OS X 10.4.x (Intel or PPC)

インストールの際は、まず AIR ベータ 3 の実行環境をインストールします。 (AIR download@Labs

AIR ベータ 3 用アップデータをインストールする前には Flash CS3 Professional (9.0.2) 用の Flash Player アップデートもインストールする必要があります。Adobe の Flash サポートサイトから日本語版をダウンロードしてください (Adobe Flash Support Center)。この数日に Adobe Update Manager からの自動更新でアップデート済の方はこの手順をスキップできます。

事前準備が環境したら、以下のファイルをダウンロードします。

Macintosh: flashcs3 air extension p3 jp 121407.dmg (49 MB)

Windows: flashcs3 air extension p3 jp 121407.exe (16 MB)

なお、今回のアップデータを適用する前に以前のバージョンをアンインストールすることをお勧めします。ベータ 1 を削除せずにベータ 3 をインストールした場合は、必ず以下のスクリプトをダウンロードして実行してください。

Flash Media Server 3 が発表されました。また、あわせて Flash Player 9 のアップデートも公開されました。新しい Flash Player のバージョンは 9.0.115.0 です。Flash オーサリング用のデバッグプレーヤも近々公開予定です。

今回の発表により H.264 ビデオと HE-AAC オーディオが正式にサポートされます。以前にもお知らせしたようにフル HD の再生も可能です。その他に、新しく暗号化したストリーミングを実現する RTMPE プロトコルの追加や、再生用の SWF を勝手に利用されないためのチェック機能などコンテンツ保護機能も拡張されています。

今回のバージョンから FMS は2 種類のサーバが提供されるようになります。1 つ目は従来の FMS のバージョンアップにあたる Flash Media Interactive Server 3 (FMIS3) です。2 つ目はビデオストリーミングに特化した新しいパッケージの Flash Media Streaming Server 3 (FMSS3) です。

FMSS は小規模な一方向のコンテンツ配信に使用するためのサーバという位置づけで、双方向のインタラクティブな通信やエッジサーバーを使用した構成等には FMIS が必要になります。その分価格も異なり、US 価格では FMIS が $4,500 からに対して FMSS は $995 (約 10 万円) という発表がされています。

Flash Media Server 3 (FMS3) の出荷は US では来年1月予定とのことです。例によって日本語版は無いため、日本での発売もほぼ同時期になるのではないかと思います。

新しく Adobe Flash Ajax Video (FAVideo) コンポーネントが Adobe Labs に公開されました。(Flash-Ajax Video Component@Labs) FAVideo は Ajax アプリケーションから Flash ビデオを利用するためのコンポーネントで、JavaScript からビデオの表示位置や大きさを指定したり再生をコントロールすることができます。Flash Player 8 以降がインストールされている環境であればビデオを表示できるようになります。

FAVideo コンポーネントはソースコードが BSD ライセンスの元で (Flash-Ajax Video Component:License) 公開されています。サンプルを含む zip ファイルが Labs よりダウンロードできます。 ( favideo_072707.zip : 2.19MB - FAVideo コンポーネント自体は 15KB 程です。念のため。)

使い方は、下の一行を追加して、

<script src="FAVideo.js" type="text/javascript"></script>

スクリプトブロック内で、下のように記述します。

videoPlayer = new FAVideo("id", "name.flv");

スキンの変更も可能です。Dreamweaver に Flash ビデオ埋め込み機能がありますが、これと同じようなものだと考えてよさそうです。

Flash CS3 ではコンポーネントの親クラスを指定できます。指定する親クラスには提供されているクラス (MovieClip など) だけでなく、それらのクラスを自分で拡張したものも利用できます。今回は Flash Integration Kit が提供する UIMovieClip を拡張して利用するケースを紹介します。

カスタムイベントの利用

UIMovieClip は標準的な Flex コンポーネントのイベントが一通り定義されています。そのため Flash CS3 で作成したコンポーネントでも特別な追加作業なしで大きさや位置の変化をイベントを発行して Flex フレームワークに通知することができます。

もし、それ以外のカスタムイベントが必要な場合には、UIMovieClip を拡張して新しいクラスを作成し、そこに必要なカスタムイベントを定義します。そしてこの新しく作成したクラスを Flash コンポーネントの親クラスとして定義するとカスタムイベントが利用可能になります。

以下に簡単な例を紹介します。AlarmClock というクラスが、設定された時刻になると alarmEvent をディスパッチするという設定です。