2008/10/16 | 20:40 pm

MovieClipをキレイに並べる

時に使うヤツ。
これもよく忘れるからメモ。

まず下ごしらえ。

var sWidth:Number = stage.stageWidth;
var sHeight:Numer = stage.stageHeight;
var w:Number = MovieClip.width;	// ターゲットの幅
var h:Number = MovieClip.height;	// ターゲットの高さ
var index:Number;

var xlimit:Number = Math.ceil(sWidth / w);
var ylimit:Number = Math.ceil(sHeight / h);
var limit:Number = xlimit * ylimit;

左上から横に並べる場合:

for(var i:int=0; i<limit; i++) {
	var xPos:Number = w * (i % xlimit);
	var yPos:Number = h * int(i / xlimit);

	var mc:MovieClip = new MovieClip();
	mc.x = xPos;
	mc.y = yPos;
	addChild(mc);
}

左上から縦に並べる場合:

for(var i:int=0; i<limit; i++) {
	var xPos:Number = w * int(i / ylimit);
	var yPos:Number = h * (i % ylimit);

	var mc:MovieClip = new MovieClip();
	mc.x = xPos;
	mc.y = yPos;
	addChild(mc);
}

右上から縦に並べる場合:

for(var i:int=0; i<limit; i++) {
	var xPos:Number = (sWidth - w) - (w * int(i / ylimit));
	var yPos:Number = h * (i % ylimit);

	var mc:MovieClip = new MovieClip();
	mc.x = xPos;
	mc.y = yPos;
	addChild(mc);
}

右上から横に並べる場合は、上のコード入れ替えれば出来るはず。

サムネイル配置する時とかに一個一個にちょこっとmarginが欲しい場合は、
var w:Numberとvar h:Numberにそのちょこっとを足せばOK。(←未確認)

ちなみに、これ↑はステージ幅いっぱい使う場合です。
指定範囲がある場合は、
var sWidth:Numberとvar sHeight:Numberを変更すれば大丈夫。

COMMENT

CATEGORY

POSTED

jam





JUN NAKAJIMA
Tokyo, Japan.
member of Onawatobi.
contact@brooklyn.jp