Flash CS3では,デジタルカメラやケータイで撮った写真などに代表される「ビットマップ・データ」を扱うこともできます。ActionScript 3.0でビットマップ・ベースの絵を扱う場合には,Bitmapクラスと,BitmapDataクラスをセットで使用します。

ビットマップ・ベースの絵を描く

 図1のムービーでは,マウスの動きに合わせてビットマップ・データを作成し,お絵かきを行います(図1)。さらに,いくつか描いた絵を,パラパラ漫画のようにアニメーションさせています。

図1●パラパラアニメを作成するムービー
図1●パラパラアニメを作成するムービー
(クリックすると別ウィンドウでムービーを表示します)

 このように,Flashムービー上でビットマップ・ベースの絵を管理するには,BitmapDataクラスを利用します。BitmapDataクラスは,通常,単体で使用することはありません。描画したビットマップ・ベースの絵を表示するために,Bitmapクラスと組み合わせて使用します。

BitmapDataクラスとBitmapクラス

 前回,ベクター・ベースの絵を管理する仕組みとして,Graphicsクラスと,それを表示するためのShape,Sprite,MovieClipクラスとの関係をご紹介しました。ベクター・ベースの絵を描くには,Graphicsクラスを使用しますが,表示するにはShapeクラスをはじめとする各種クラスが必要でしたね(図2)。

図2●Graphicsクラスを表示する
図2●Graphicsクラスを表示する

 「絵のデータにアクセスするには,Graphicsクラスの機能を使用し,その絵を表示したり,位置を変更したりする際には,セットとなるクラスの機能を使用する」という役割分担ができていたわけです。

 ビットマップ・ベースの絵を管理する仕組みも,このGraphicsクラスと,Shape,Sprite,MovieClipクラスの関係と,よく似た仕組みで作成されています。ビットマップ・ベースの絵の場合,絵のデータを管理するには,「BitmapDataクラス」を利用し,その絵のデータを画面上に表示するには,「Bitmapクラス」を使用するという役割分担がされています(図3)。

図3●ビットマップ・データを表示する際の仕組み
図3●ビットマップ・データを表示する際の仕組み

 「絵」と「額」のような関係で考えてみるとわかりやすいかもしれませんね。BitmapDataは「絵」であり,いろいろと描き加えたり,修正することができます。それに対して,Bitmapは「額」であり,自由に位置を変更したり,飾る場所を変更することはできますが,単体では空っぽのままで味気がありません。そこに「絵」を嵌めて,初めて「皆に見てもらえる状態」となるわけです。