ウィンドウ・サイズを
リサイズしたときに、
あるムービークリップの大きさ・位置などを
変動させつつ、
特定のムービークリップの大きさ・位置などを
固定する。
 |  |
[updatePos1] | [updatePos2] |
かえる君をクリックすると、別ウィンドウが開くので、
ウィンドウ・サイズを変えてみよう。
ステージサイズは 600*400 で、背景色は黒に設定。
ライブラリに、ムービークリップ(リンケージ識別子: base, header, footer) を用意。
header には、ムービークリップ(インスタンス名: back, banner) を配置。
footer には、ムービークリップ(インスタンス名: back, copyright) を配置。
_root 第1フレームに
Stage.scaleMode = "noScale";
Stage.align = "TL";
var resizeListener:Object = new Object();
resizeListener.onResize = function():Void {
updatePos();
};
Stage.addListener(resizeListener);
this.attachMovie("base", "base", 1);
var baseWidth:Number = 600;
var baseHeight:Number = 400;
this.attachMovie("header", "header", 2);
this.attachMovie("footer", "footer", 3);
updatePos();
function updatePos():Void {
var xScale:Number = Stage.width/baseWidth;
var yScale:Number = Stage.height/baseHeight;
var fixScale:Number = Math.max(xScale, yScale)*100;
base._xscale = base._yscale = fixScale;
header.back._width = Stage.width;
header.banner._x = Stage.width - 85;
footer._y = Stage.height - 30;
footer.back._width = Stage.width;
footer.copyright._x = Stage.width - 290;
}
と記述。
これに、移動するメニューを追加する。(updatePos2)
ライブラリに、ムービークリップ(リンケージ識別子: menu) を追加。
_root 第1フレームに
(中略)
this.attachMovie("menu", "menu", 4, {_y: 40});
var deceleration:Number = 0.4;
updatePos();
function updatePos():Void {
(中略)
menu._x = Stage.width - 60;
slideMenu(Stage.height - 160);
}
function slideMenu(targetPos:Number):Void {
menu.onEnterFrame = function():Void {
this._y += (targetPos - this._y)*deceleration;
if (Math.abs(targetPos - this._y) < 0.5) {
this._y = targetPos;
delete this.onEnterFrame;
}
};
}
と記述。
[追記] (07/03/21 Wed 01:40)html 側の設定については、
Stage.scaleModeの値 参照。
関連記事:
いつも中央にムービークリップ (1)関連記事:
ステージのリサイズ関連記事:
いつも中央にムービークリップ (2)関連記事:
Stage.scaleModeの値関連記事:
フルスクリーンモード