Starlingフレームワークで子インスタンスをもてるオブジェクトとしては、Spriteがもっぱら使われます。その子オブジェクトの見た目がしばらく変わらないときは、Sprite.flatten()メソッドを呼出すと描画が最適化されます。その描画を速めるために、おもに内部的に用いられるのがQuadBatchクラスです。Starling Wiki「Performance Optimization」に解説されていた内容から、ふたつの項目を採上げてご紹介します。
Starlingフレームワークは、表示リストのすべてのオブジェクトの状態を確かめて、毎フレームそのデータをGPUにアップロードします。
もし、子インスタンスの描画は変わらないというSpriteオブジェクトがあったら、Sprite.flatten()メソッドを呼出してください。Starlingは子インスタンスを予め処理して、データをGPUにアップロードします。すると、以降のフレームでは、そのデータがそのまま描かれます。その処理にCPUは使われませんし、GPUにデータが送られることもありません。
Spriteオブジェクトをフラット化すると、描画が速まるうえ、CPUの負荷も減らせます。ただし、状態が変われば再描画されます。また、状態の異なる子インスタンスが含まれていれば、それぞれは分けて描かれることになります。
SpriteクラスとSprite.flatten()メソッドについて詳しくは、「starling.display.Spriteクラス」をお読みください。
Spriteオブジェクトはフラット化すれば描画が速まるものの、まだ難点もあります。
Starlingフレームワークが描画をまとめるために内部的に用いている低レベルのクラスQuadBatchなら、これらの問題はなくなります。ひとつのQuadインスタンスをいくつでも加えられるうえ、いちいちイベントが配信されません。
もっとも、QuadBatchオブジェクトには、別の難点もあります。
これらさえ問題なければ、QuadBatchオブジェクトはSpriteとQuadおよびImageを加えた表示オブジェクト四天王の中で間違いなく描画は最速です。
QuadBatchクラスについて詳しくは、「starling.display.QuadBatchクラス」をお読みください。