swfに埋め込んだ画像の表示
画像をswfに埋め込むことで、ロードによる遅延なく画像を表示することができます。
- ○外部からの読み込みと違い、swfと共にダウンロードされるので読み込みに時間がかからない。
- ×swfのサイズが大きくなる。
- ×画像を差し替えるにはswfの再作成が必要。
埋め込み手順
- 「Embed」メタデータタグを使用して画像(アセットと呼ばれます。)を変数に関連づけます。変数の型は「Class」になります。
- 「new」演算子でクラスのインスタンスを生成します。
- 作成されたインスタンスは画像の場合「Bitmap」の派生?クラスになります。これを貼り付ければOKです。
サンプル:
package { import flash.display.*; import flash.net.*; /** * メインクラス */ public class EmbedImage extends Sprite { // 組み込むアセットをEmbedメタデータタグで指定 [Embed(source="image.jpg")] private var image:Class; // アセットはこの変数に関連づけられる。型はClass public function EmbedImage(){ // classからインスタンスを生成する。画像の場合、Bitmapの派生クラス?になる。 var i:Bitmap = new image(); trace(i is Sprite); // false trace(i is Bitmap); // true trace(i is DisplayObject); // true this.addChild(i); // 貼り付ける } } }
APIの利用
BitmapなのでBitmapのAPIを使用することができます。
サンプル:
package { import flash.display.*; import flash.net.*; /** * メインクラス */ public class EmbedImage extends Sprite { [Embed(source="image.jpg")] private var image:Class; public function EmbedImage(){ var i:Bitmap = new image(); i.alpha = 0.5; this.addChild(i); // 貼り付ける } } }
参考: