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を変更すれば大丈夫。
CATEGORY
POSTED
jam


COMMENT
0 Comment