« 8.1 時計を作る (1)デジタル時計 | メイン | 10.1 外部テキストファイルの読み込み »

9.1 イメージファイルの読み込み(1)

■外部ファイル読み込みの手順
外部ファイルのSWFファイルおよびイメージファイル (JPG、PNG、GIF) を読み込んで再生表示することができます。これらの外部ファイルを読み込むにはLoaderクラスを使用します。

[:NOTE:]
AS2.0のMovieClipLoaderクラスはAS3.0ではLoaderクラスに置き換えられました。なお、テキストまたはバイナリデータをロードするにはURLLoaderクラスを使用します。(URLLoaderクラス→p.??)

Loaderクラスを使用して外部ファイルを読み込むには、LoaderクラスのインスタンスloaderObjを作り、loaderObjに対してloaderObj.load(urlReq)のようにload()メソッドを実行します。load()の引数のurlReqは読み込む外部ファイルのURLですが、ストリングのURLをそのままload()に引数として渡すのではなく、URLRequestクラスのオブジェクトにした値すなわちURLRequest(URL)をload()に渡します。
次のSimpleImageLoaderクラスは、外部のイメージファイルを読み込んで表示するという単純な機能のクラスです。イメージを表示する場所は、引数で渡したコンテナの中の指定座標(ローカル座標)になります。

[:NOTE:]
SWFと外部ファイルが異なったドメインにあるときはクロスドメインのポリシーファイルを外部ファイルを置いたパスに配置し、LoaderContextクラスでチェックします。なお、SWFを読み込む場合とイメージファイルを読み込み場合はセキュリティレベルが違っています。(クロスドメイン→P.??)

[:SAMPLE:] SimpleImageLoader.as
例:外部イメージファイルを読み込んで表示するSimpleImageLoaderクラス
package {
	import flash.display.DisplayObjectContainer;
	import flash.display.Loader;
	import flash.net.URLRequest;

	public class SimpleImageLoader {
		//コンストラクタ
		function SimpleImageLoader(container:DisplayObjectContainer,url:String,x:Number,y:Number) {
			//loader作成
			var imgLoader:Loader = new Loader();
			imgLoader.x = x;
			imgLoader.y = y;
			container.addChild(imgLoader);
			//URL
			var urlReq:URLRequest = new URLRequest(url);
			//読み込み開始
			imgLoader.load(urlReq);
		}
	}
}

画像を読み込むムービーファイルのメインのタイムラインのフレームアクションには次のスクリプトを書きます。

[:SAMPLE:] simpleImgLoader_test.fla
例:メインのタイムラインのフレームアクション
import SimpleImageLoader;
var url:String = "image/photo_001.jpg";
var posX:Number = 50;
var posY:Number = 50;
var imgLoaderObj:SimpleImageLoader = new SimpleImageLoader(this, url, posX, posY);

SimpleImageLoaderクラスを試すには、外部イメージファイルを用意する必要があります。このサンプルではSWFファイルと同じ階層にimageフォルダを作り、その中にphoto_001.jpgを入れています。イメージファイルのURLはhttpから始まる絶対パスでもSWFファイルからの相対パスでも指定できます。
ムービーファイルをパブリッシュするとphoto_001.jpgがメインのタイムラインに読み込まれ、座標(50,50)の位置に表示されます。イメージの左上角が(50,50)の位置になります。

fig09-01-01 外部イメージファイルを読み込んで表示します。

[:NOTE:]
SimpleImageLoaderクラスではイメージファイルと同様にSWFファイルも読み込むことができます。

スクリプトではイメージの表示座標をLoaderクラスのインスタンスimgLoaderのx、yプロパティで指定し、コンテナに対してaddChild()している点にも注目してください。Loaderクラスは外部ファイルを読み込む機能をもったクラスですが、これでもわかるようにSpriteやMovieClipなどと同じように座標をもち、イメージを表示する表示オブジェクトの側面も兼ね備えています。

About

2007年8月 5日 09:41に投稿されたエントリーのページです。

ひとつ前の投稿は「8.1 時計を作る (1)デジタル時計」です。

次の投稿は「10.1 外部テキストファイルの読み込み」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。