mod002 コンポーネントのマウスオーバー時拡大
2007.7.14公開
flashPlayer versionver6.0r65以降
マウスが乗ったコンポーネントを拡大させます。
TextField等でonRollOverイベントを受け取る術が見つからなかったため、マウス座標を元に判定を行っています。
var compArray:Array = new Array();//コンポーネント格納配列
var compNumber:Number = 2;//コンポーネント数
var bigScale:Number = 150;//コンポーネント拡大時スケール(%)
//全コンポーネントの配列への格納とx座標y座標の取得
for(var i =1 ; i <= compNumber ; i++){
if(i <= compNumber) compArray[i] = eval("comp" + i);//配列への格納
compArray[i].nextScale = 100;//通常時は100、拡大時は150
//拡大時のコンポーネントの左上と右下のx座標y座標を保持
compArray[i].x1 = compArray[i].x;
compArray[i].x2 = compArray[i].x + compArray[i].width * bigScale / 100;
compArray[i].y1 = compArray[i].y;
compArray[i].y2 = compArray[i].y + compArray[i].height * bigScale / 100;
}
//コンポーネント上にマウスが乗った際の拡大表示
_root.onEnterFrame = function():Void{
for(var i = 1 ; i <= compNumber ; i++){
if(_root._xmouse>compArray[i].x1 && _root._xmouse
compArray[i].nextScale = bigScale;//上にマウスがある場合はnextScaleを150にする
}
else{
compArray[i].nextScale = 100;//上にマウスがない場合はnextScaleを100にする
}
//表示スケールをnextScaleに近づけていく。2で割っているのは拡大縮小に視覚的変化を持たせるため
compArray[i].scaleX += (compArray[i].nextScale-compArray[i].scaleX) / 2;
compArray[i].scaleY += (compArray[i].nextScale-compArray[i].scaleY) / 2;
}
}