外部画像を読み込んだ後の下処理

| | comments(0) | truckbacks(0)

多量の外部画像を、一気に読み込んで、それにスムージングをかけつつ Sprite などでラッピングしておいて、ボタンとして扱ったり伸縮させたり、あとからゴニョゴニョできるようにする、というよくあるやつ。
気づいたら毎回似たようなのイチから書いてるので自分用メモ。

並べ方がとか、ドラッグ機能とか、ローディングが無いとか、はサンプルなのでテキトー。ラッピングした Sprite に名前つけてるのは、getChildByName とかで、あとからどうにでも出来るように。
もっとこうすればいいじゃないか、アッタマ悪いなぁ、というコメントなんかいただけると感涙。

// ローダー
var imgLoader:Loader;
// 読むイメージの総数
var totalNum:uint = 25;
// カウンタ ※読み込むファイル名に合わせた初番
var cnt:int = 1;
// イメージまでのパス
var imgUrl:URLRequest;
// イメージを格納しておく配列
var imgArr = [];
// イメージをラップする Sprite
var _sp:Sprite;



/*	イメージのロード
----------------------------*/
function imgLoad():void
{
	imgUrl = new URLRequest("./pic" + cnt +".png");
	imgLoader = new Loader();
	imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImgLoaded);
	imgLoader.load(imgUrl);
}

/*	ロードしたイメージの処理
----------------------------*/
function onImgLoaded(e:Event):void
{
	cnt++;
	
	var loadedImg:Bitmap = e.target.content as Bitmap;
	// ビットマップをスムージング
	loadedImg.smoothing = true;
	// 配列に Sprite を追加
	imgArr.push(loadedImg);
	
	if(cnt <= totalNum)
	{
		imgLoad();
	}
	else
	{
		// イメージを全部読み終えた
		imgLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onImgLoaded);
		// ステージに並べる
		layout();
	}
}


/*	ステージに並べる
----------------------------*/
var w:uint = 94; // 横幅間隔
var h:uint = 72; // 天地間隔

function layout():void
{
	var _id:uint = 0;
	
	for(var i:uint = 0; i < 5; i++)
	{
		for(var j:uint = 0; j < 5; j++)
		{
			imgArr[_id].x = j*w;
			imgArr[_id].y = i*h;
			_id++;
		}
	}
	
	for(var k:uint = 0; k < totalNum; k++)
	{
		_sp = new Sprite();
		_sp.name = "img"+k;
		_sp.addChild(imgArr[k]);
		addChild(_sp);
		_sp.buttonMode = true;
		_sp.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler);
		_sp.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler);
	}
}


function onMouseDownHandler(e:MouseEvent):void
{
	var _t:Sprite = Sprite(e.target);
	_t.startDrag();
}

function onMouseUpHandler(e:MouseEvent):void
{
	var _t:Sprite = Sprite(e.target);
	_t.stopDrag();
	
}


imgLoad();

こんな感じになる。
でもこのサンプルじゃ smoothing = true の効果分からないじゃないか...。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 外部画像を読み込んだ後の下処理

このブログ記事に対するトラックバックURL: http://www.nrd-studio.com/mt/mt-tb.cgi/217

コメントする

このブログ記事について

このページは、Biz_Rが2010年2月11日 01:09に書いたブログ記事です。

ひとつ前のブログ記事は「【jQuery】しつこく LightBox w/ SWF」です。

次のブログ記事は「EOS 40D」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。