でもう一個、dskymdさんのサイトを参考にしてMovieClipの位置を相対的に指定して固定するクラスを作成。これ使えば画面のサイズが変わってもMovieClipが指定の場所に張り付いててくれる。参考にしたサイトのUtilitiesクラスに加えて基準点から座標をずらせるようにした。
dskymd:blog » Blog Archive » 全画面FlashのMCの再レイアウト
使い方はMovieClipSetterのインスタンスを作って、setMCでMovieClipと、基準点と、ずらす量を指定すれば張り付いてくれる。
class MovieClipSetter
{
var mcContainer:Array=[];
function MovieClipSetter()
{
Stage.align = “TL”;
Stage.scaleMode = “noscale”;
Stage.addListener(this);
}
function setMC(mc:MovieClip, position:String, dx:Number, dy:Number)
{
var obj:Object =
{
mc: mc,
pos: position,
dx: (dx==null)? 0: dx,
dy: (dy==null)? 0: dy
}
mcContainer.push(obj);
onResize();
}
function onResize()
{
for (var i in mcContainer)
{
var mc:MovieClip = mcContainer[i].mc;
var pos:String = mcContainer[i].pos;
var dx:Number = mcContainer[i].dx;
var dy:Number = mcContainer[i].dy;
var stageW = Stage.width;
var stageH = Stage.height;
var mcW = mc._width;
var mcH = mc._height;
var T:Number = 0;
var R:Number = stageW – mcW;
var B:Number = stageH – mcH;
var L:Number = 0;
var C:Number = stageW / 2 – mcW / 2;
var M:Number = stageH / 2 – mcH / 2;
var W:String = pos.substr(0, 1);
var H:String= pos.substr(1, 1);
switch(W)
{
case “L”:
mc._x = L + dx;
break;
case “C”:
mc._x = C + dx;
break;
case “R”:
mc._x = R + dx;
break;
}
switch(H)
{
case “T”:
mc._y = T + dy;
break;
case “M”:
mc._y = M + dy;
break;
case “B”:
mc._y = B + dy;
break;
}
}
}
}