2008.07.15全画面FLASH
久しぶりにFLASHの話です。
前々からしてみたいと思っていた全画面FLASHを作ることができました◎
なんだか最近クリエイティブから離れていた気がするので、
久しぶりにFLASHを触れて満足(?)です。
楽しいなぁ。こうゆうの。
全画面をするときに、ステージサイズをnoScaleにすると、
レイアウトが同じままなので、この_mcは左寄せ とか、
この_mcはステージサイズに合わせて伸縮する とか、
いちいち指定しなければなりません。
それをチョッとでも簡単にしようとあがいた結果、
下記のようなスクリプトが出来ました。
汚い書き方さらすのは恥ずかしいのですが…_root1フレーム目---------------------------------------------------------------------------
Stage.scaleMode="noScale";Stage.align="TL";
var myListener:Object = new Object();
myListener.onResize = function () {
designResize()
}
Stage.addListener(myListener);
stage_w = Stage.width;
stage_h = Stage.height;
//実際にはステージサイズを数字でいれないといけません。
function designResize(){
for(var i in mc_array){
//move
mc= mc_array[i];
if((eval(mc).m == "x") || (eval(mc).m == "xy")){
eval(mc)._x = Stage.width-eval(mc).l;
}
if((eval(mc).m == "y") || (eval(mc).m == "xy")){
eval(mc)._y = Stage.height-eval(mc).u;
}
//resize
if((eval(mc).r == "x") || (eval(mc).r == "xy")){
eval(mc)._width = (Stage.width - stage_w)+eval(mc).w;
}
if((eval(mc).r == "y") || (eval(mc).r == "xy")){
eval(mc)._height = (Stage.height - stage_h)+eval(mc).h;
}
}
}
mc_array = new Array();
function coo(mc,mvSw,reSw){
eval(mc).l=stage_w-eval(mc)._x
eval(mc).u=stage_h-eval(mc)._y;
eval(mc).w=eval(mc)._width;
eval(mc).h=eval(mc)._height;
eval(mc).m=((mvSw==undefined)||(mvSw==""))?false:mvSw;
eval(mc).r=(reSw==undefined||(reSw==""))?false:reSw;
mc_array.push(mc);
}
//coo(MCの名前,移動する方向,リサイズする方向)
coo("xxxxxx_mc","y","x")
designResize()
-----------------------------------------------------------------
coo("xxxxxx_mc","y","x")
っていう関数で、リサイズするときに動く(もしくは拡大する)_mcを指定しておけば
リサイズがあったときに座標(or大きさ)を再計算するよ。
っていう感じのアレです。
右上基準なので、センター寄せとか、
平均っていう考え方は無いのですが、
MC毎に動き方を指定するときなど、こんな感じに作っておくと、
後からだいぶ便利になるかも?
第2,3引数は yx って書いたらアウトです。w
xy と。

