第四章 swfファイルの軽量化 - 2

外部ファイルの読み込み

まずはpict_mcと、thumbnail_mc内のbase_mcに、外部から写真を読み込んで表示するようにします。外部のファイルを読み込んで表示するためには、MovieClipLoaderクラスを使用します。

MovieClipLoaderクラス

MovieClipLoaderクラスは外部ファイル読み込むためのクラスです。MovieClipLodaerクラスは、外部ファイルをただ読み込むだけでなく、読み込み状況を把握したり、読み込み状況にあわせて命令を実行することなどができます。この章ではただ読み込むだけですが、次章でプリローダーを作成する際には、読み込み状況に応じた処理が必要になってきます。

MovieClipLoaderクラスのインスタンスの作成

MovieClipLoaderクラスを使用するためには、まずは下記の公式でインスタンスを作成します。

var Ml:MovieClipLoader = new MovieClipLoader();

new演算子

new演算子はクラスのインスタンスを作成する場合に使用します。上記の場合は、MovieClipLoaderクラスを作成しています。

インスタンス名

varに続き任意のインスタンス名を指定します。今回はMlという名前のインスタンス名で作成しています。

loadClipメソッド

インスタンスを作成すると、そのインスタンスでMovieClipLoaderクラスのメソッドを実行することでできます。MovieClipLoaderクラスには、loadClipという外部ファイルを読み込むためのメソッドが用意されています。

MovieClipLoader.loadClip("外部ファイルのパス",ムービークリップのインスタンス);

loadClipメソッドの1つ目の引数には、外部ファイルのパスを指定します。swfファイルからみた相対パス、http://から始まる絶対パスいずれも指定可能です。2つ目の引数には、外部ファイルを読み込むムービークリップのインスタンスを指定します。

拡大写真の読み込み

実際に先の一文で作成したインスタンス"Ml"で、pict_mc内のbase_mcにカテゴリ0の最初の写真を読み込むように記述します。

今回は画像ファイルまでのパスを、絶対パスで指定します。各カテゴリのフォルダまでのパスは何度も指定するので、変数(変数名Url)に代入しておきます。

変数Urlにパスを代入したので、+演算子で連結しています。

サムネイルの写真の読み込み

9枚のサムネイル写真を読み込む場合も、同様に記述します。

拡大写真・サムネイル写真の読み込み用の関数

拡大写真・サムネイル写真合計10枚の写真を読み込む処理は、カテゴリを変更する度に使用しますので、関数(関数名dl_pict)で定義します。また各カテゴリのフォルダにあたるcat0の部分は、その都度cat1,cat2・・と変わるように、変数(変数名Category)にしておきます。

変数Categoryは、最初に宣言して"cat0"代入おきます。そして関数dl_pictを実行します。これを1フレームに記述します。

actionレイヤーのコード ※25行目以降は変更なし

※7行目の1行は次章で利用します。本章では使用しません。

ここまでのactionレイヤーのコードは上記のようになります。この時点でプレビューすると画像が読み込まれます。