Flashで制作するときに
単純にパブリッシュからFlashをウインドウサイズに合わせると
ディスプレイのサイズによっては画像が伸び縮みしていやな時があります。
そんなときに背景のムービークリップだけをウインドウサイズに合わせて
あとのメニューなどは拡大縮小なしにすれば
きれいに表示され解決できることがあるので、
今回は背景画像だけをウインドウサイズに合わせる方法をメモ。

プログラミング

サンプル

// ムービー全体の拡大縮小をなしにする
stage.scaleMode=StageScaleMode.NO_SCALE;
// ステージの左上を基準として整列
stage.align=StageAlign.TOP_LEFT;

// back_mcの初期サイズを記録
var backW:Number=back_mc.width;
var backH:Number=back_mc.height;

//stageにリスナーを登録
stage.addEventListener(Event.RESIZE,xStageResize);

// 関数定義
function xStageResize(evt:Event):void {
// 関数 resize_mc (ステージ幅,ステージ縦)
resize_mc(stage.stageWidth,stage.stageHeight);
}

// 関数 resize_mc の定義
function resize_mc(stageW:int,stageH:int):void {
// ステージの縦横が背景画像より横長のとき
if (stageH/stageW<backH/backW) {
// back_mcの幅をステージの幅に合わせる
back_mc.width=stageW;
// back_mcの縦をステージの幅を基準に算出
back_mc.height=stageW*backH/backW;
// ステージの縦横が背景画像より縦長のとき
} else {
// back_mcの幅をステージの縦を基準に算出
back_mc.width=stageH*backW/backH;
// back_mcの縦をステージの縦に合わせる
back_mc.height=stageH;
}

//背景以外のムービークリップ(例:_mc)のポジション設定
//中心に置く場合
_mc.x = stageW/2;
_mc.y = stageH/2;

}

// 関数 resize_mc を実行(ステージ幅,ステージ縦)
resize_mc(stage.stageWidth,stage.stageHeight);

でOK

※上記のやり方でする場合の注意点として
1.背景にするムービークリップ(back_mc)の
基準点を左上にしないとうまくいきません。
2.背景以外のムービークリップ(_mc)などは
ウインドウの中心を基準に配置したい場合は
基準点を中心にしたほうがやりやすいです。