サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

starling.display.Spriteクラス

ID: FN1206003 Platform: All Version: CS6/ActionScript 3.0 Runtime: Flash Player 11/AIR 3.0

Spriteクラス
パッケージ starling.display
継承 Sprite → DisplayObjectContainer → DisplayObject → EventDispatcher → Object
Sprite()コンストラクタ
文法 public function Sprite()
概要 Spriteインスタンスをつくる。
引数

なし

isFlattenedプロパティ
文法 isFlattened:Boolean
プロパティ値 [読取り専用] インスタンスがフラット化されたかどうかを示す。
実装 public function get isFlattened():Boolean
useHandCursorプロパティ
文法 useHandCursor:Boolean
プロパティ値 マウスポインタがインスタンス上で指差しカーソルに変わるかどうかを示す。
実装 public function get useHandCursor():Boolean
public function set useHandCursor(value:Boolean):void
dispose()メソッド
文法 override public function dispose():void
概要 子インスタンスのデータをすべて消し去る。
引数

なし。

戻り値 なし。
flatten()メソッド
文法 public function flatten():void
概要 Spriteインスタンスを描画のために最適化する。ただし、フラット化すると、子インスタンスの見た目を変えてもSpriteインスタンスの描画は変わらない。描き直すには、メソッドSprite.unflatten()か改めてSprite.flatten()メソッドを呼出す。
引数

なし。

戻り値 なし。
render()メソッド
文法 public function render(support:RenderSupport, parentAlpha:Number):void
概要 DisplayObjectオブジェクトを、第1引数のRenderSupportオブジェクトにもとづいて描画する。このメソッドは内部的に呼ばれるか、他のクラスのrender()メソッドから呼出す。
引数

support:RenderSupport - 描画のメソッドを備えたRenderSupportオブジェクト

parentAlpha:Number - ステージから見た親オフジェクトのアルファ。

戻り値 なし。
unflatten()メソッド
文法 public function unflatten():void
概要 Spriteインスタンスから描画のための最適化を止める。子インスタンスは直ちに再描画される。
引数

なし。

戻り値 なし。
flattenイベント
イベントオブジェクト starling.events.Event
イベント定数 Event.FLATTEN
概要

Spriteインスタンスがフラット化されたとき子インスタンスすべてに配信される。

説明
Spriteクラスは、子インスタンスがもてるもっとも軽いオブジェクトをつくります(スーパークラスのDisplayObjectContainerは、抽象クラスなので直接インスタンスがつくれません)。表示オブジェクト(DisplayObject)を同じ座標系でまとめるときの親オブジェクトに用います。あるいは、子オフジェクトがもてるクラスのスーパークラスとして定められます。

Sprite.flatten()メソッドを呼出すと、インスタンスの表示リストに加えられたオブジェクトの静的な描画が最適化されます。オブジェクトの階層に属する子インスタンスすべてを予め解析しておくので、描画が求められたときに素速く処理できます[*1]

ただし、Sprite.flatten()メソッドを呼出した後は、子インスタンスの見た目が変わるプロパティを操作しても、描画は変わりません。Spriteインスタンスの表示を書替えるには、メソッドSprite.unflatten()か改めてSprite.flatten()を呼出します。

[*1] Starlingは、子インスタンスが含まれたSpriteオブジェクトのデータを、予めGPUに送ります。すると、フレームを書替えるとき、GPUはそのデータをそのまま描きます。したがって、GPUへのデータ送信もCPUの追加の処理も発生しません。つまり、CPUも含めた最適化ができます。

ただし、フラット化しても、Spriteインスタンスが「状態」の異なる子インスタンスを含むと、その描画は別途行われることになります。詳しくはStarling Wiki「Performance Optimization」をご参照ください。

参考
[Starling Framework Reference] > [Sprite]


作成者: 野中文雄
作成日: 2012年6月7日


Copyright © 2001-2012 Fumio Nonaka.  All rights reserved.