2Dアクション・テンプレート:画像の表示(基本部分)

=画像表示の手順=

画像を表示するには、以下の手順を踏む。

  • 画像の用意
    • 「〜.png」のような画像を用意する
  • 画像の読み込み
    • AS3では、Embedを使うことで簡単に読み込める
  • 画像の生成
    • こちらも簡単に生成できる
  • 画像の描画登録
    • 生成した画像を登録すれば描画できる

=画像の用意=


今の時代ならフリー素材が色々と存在するので、自分で作成する手間は省ける。ただし、「抜き色(透明色)」に対応していない画像の場合は、その対応をしないと表示がおかしくなる。


透明部分を作成するには「GIMP2」などのグラフィックエディタが役に立つが、いまだに「これなら万事OK」と言えるエディタを見つけられないので、あまり深くはつっこまない。それぞれに一長一短があったり、別の問題が発生して時間を取られた経験があったりするので、グラフィックに凝る場合はそれなりの覚悟(と時間)が必要。

=画像の読み込み=


例えば「Block.png」という画像を用意した場合、その読み込みは以下のようにしてできる。

  [Embed(source='Block.png')]
   private static var Bitmap_Block: Class;


見た目はややこしいが、表現しているのは「"Block.png"という画像は"Bitmap_Block"というクラスとして生成できますよ」ということだ。


他にも読み込み方法はあるが、この方法ならswfに埋め込めるので、「実行時にはその画像を同じフォルダに用意する必要はない」「ロードの遅延を気にする必要がない」「"ローカルのデータを読み込めない問題"などが起こらない」などのメリットがある。ただ、デメリットとして「直接埋め込むためにswfのサイズが大きくなる」という問題などもある。

=画像の生成=


上のように読み込めば、画像の生成は以下のように簡単にできる。

var bmp:Bitmap = new Bitmap_Block();


注意点としては、「Image」ではなく「Bitmap」として生成される点。そのため、「Imageをセットするところ」にセットしようとすると問題が起こることがある。


なので、

var img:Image = new Image();
img.addChild(bmp);


のようにImageの下につけておくと使いまわす時に便利。

=画像の描画登録=


あとは、上で生成した画像をMainにて「addChild」で呼べば表示確認はできるのだが、後のことを考えて特殊な対応をしておきたい。具体的な内容についてはまた明日。