「Starling」は、Flash Player 11の新しい描画機能「Stage3D」にもとづいてつくられた2次元の描画用フレームワークです。Flash Professional CS5.5でStarlingフレームワークを使ってみたい方のために、いくつか解説を書き始めました。これまでのまとめをご紹介します。詳しくは、それぞれの記事をお読みください。
Starlingフレームワークは、Flash Player 11の新しい描画機能Stage3Dにもとづきます。したがって、Flash Player 11の書出しができなければなりません。Flash Player 11は、次期バージョンのFlash CS6から正規サポートされる予定です。それまでの暫定処置として、AdobeからFlash CS5/CS5.5でFlash Player 11のSWFを書出す機能拡張(MXP)が提供されました(図001)。そして、Starlingはオープンソースのフレームワークです。
これらをダウンロードしてインストールする手順は、つぎのノートで説明しています。
図001■MXPをインストールすると[パブリッシュ設定]に[Flash Player 11]が加わる

Stage3Dは文法こそActionScript 3.0にしたがうものの、プログラミングの考え方はアセンブラとほぼ変わらない、新しい言語といってもよいです。表示リストの階層もなければ、フレームベースのアニメーションも備わっていません。Starlingには、SpriteやMovieClipといったクラスがあり、addChild()メソッドも使えます。また、addEventListner()メソッドでENTER_FRAMEイベントのリスナーを加えることもできます。これまでのActionScript 3.0と似た感覚でStage3Dによる2次元の描画を扱えるのがStarlingフレームワークなのです。
手始めとして、Starlingフレームワークで描いた矩形に、回転のアニメーションを加えてみます(図002)。
図002■正方形のインスタンスをステージの中央で回す

さらに、Quadインスタンスの頂点ごとに異なるカラーやアルファを定めて、グラデーションで塗ります(図003)。
図003■Quadインスタンスの4頂点に異なるカラーとアルファを定める
CPUの負荷が上がりやすい物理演算は、Stage3Dを試したい処理のひとつです。そこで、ふたつの物理演算エンジンを試します。
まず、使いやすさで注目されている「Nape」をStarlingフレームワークです。ビットマップのボールをStarlingフレームワークに置くことから始めます。つぎに、そのボールをNapeの物理演算で自然落下させます。そして、100個のボールを落として、床および互いの間でバウンドさせるムービーをつくります(図004)。
図004■ランダムに落とした100個のボールを互いにバウンドさせる

*クリックでサンプルSWFのページが開きます。
つぎに、C++から移植された物理エンジンBox2DFlashです。まずは、矩形のQuadインスタンスを落下させます。それを画面の下に置いた床に弾ませることができたら、矩形のインスタンスを50個まとめて落としてみます(図005)。
図005■50個の矩形をランダムに床に落とす

Starlingフレームワークにはstarling.animation.Tweenクラスが備わっています。ただし、Flashにもともとあるfl.transitions.Tweenクラスとは少し使い勝手が違います。StarlingフレームワークのTweenクラスを用いたアニメーションについてご説明します。
Starlingフレームワークのリファレンスは、英文で情報もあまり詳しくありません。解説記事で触れたプロパティやメソッドを少しずつ加えていくつもりです。
図006■Stage3D(Starling)とFlashのステージの関係

[追記2012/02/08]「starling.display.Quadクラス」と「StarlingフレームワークのQuadインスタンスをグラデーションで塗る」を、それぞれ本文04と02に加えました。
[追記2012/02/15]「StarlingフレームワークのTweenクラスを使ったアニメーション」を本文04に加え、「Starlingフレームワークのリファレンス」の項目番号を05としました。
http://f-site.org/mt3/mt-tb.cgi/643
この記事へのコメント
●1.野中 文雄(2012年01月31日 17:17)
リファレンスに「starling.display.Quadクラス」を加えました。
http://www.fumiononaka.com/TechNotes/Flash/FN1201007.html
●2.野中 文雄(2012年02月08日 15:13)
「starling.display.Quadクラス」と「StarlingフレームワークのQuadインスタンスをグラデーションで塗る」を本文に追記しました。
●3.野中 文雄(2012年02月22日 18:09)
本文03「Starlingフレームワークで物理演算エンジンを試す」に、「Starlingフレームワークで物理演算エンジンBox2Dを使う」を加えました。