バナー回転

トンボ鉛筆のHPのバナー部分のマネ続編です。
バナー回転

バナー数、バナー画像を外側から設定できるようにしてみました。
今後Flash素材として配布できたらいいな〜。ってことを考慮してです。
こんな大きいバナー置き場じゃ使い勝手悪すぎですけどね。笑
↓な感じです。

テキストファイルで数を指定します。
テキストの中身

maxobject=8 この8を変えるとバナー数が変わります。

ActionScriptですが後付け後付けで物凄いことになってます・・・。
一応載せときます。

ActionScript 3.0

banner,s_ban,s_banmの3つをライブラリから書き出してます。

var rot:Array= new Array();//角度
var rad:Number=0;//ラジアン
var _mask:Array = new Array();  //マスク
var _smask:Array = new Array();  //マスク影用
var shdwm:Array = new Array();  //アルファマスク
var loader:Array = new Array();  //ロード画像
var shdw:Array = new Array();  //ロード画像影用
var _mc:Array = new Array();
var mc:Array = new Array();  //インスタンス格納用
var maxobj:int;  //画像の最大数 読み込みするように
var blurX:uint = 7;
var blurY:uint = 7;
var blur : BlurFilter = new BlurFilter(blurX,blurY);
var textloader:URLLoader = new URLLoader();
textloader.dataFormat=URLLoaderDataFormat.VARIABLES;
var xrad:int = 140;
var yrad:int = 20;
var i:uint = 0;
var timer:Timer = new Timer(50);

function showText(f) {
	var _data = textloader.data;
	var num = _data.maxobject;
	maxobj =Number(num);
	for (i = 0; i<maxobj; i++) {
		_mask[i] = new banner();
		_smask[i] = new s_banm();
		shdwm[i] = new s_ban();
		loader[i] = new Loader();
		shdw[i] = new Loader();
		loader[i].load(new URLRequest([i]+".jpg"));
		loader[i].contentLoaderInfo.addEventListener(Event.INIT,loaderinit);
		shdw[i].load(new URLRequest([i]+".jpg"));
		shdw[i].contentLoaderInfo.addEventListener(Event.INIT,loaderinit);
		loader[i].x = -67.5;
		loader[i].y = -22.5;
		shdw[i].x = -67.5;
		shdw[i].y = -22.5;
		shdwm[i].x = -1;
		shdwm[i].y = _smask[i].y = 10;
		shdwm[i].alpha = 0.3;
		shdwm[i].filters = [blur];
		shdwm[i].blendMode = BlendMode.ALPHA;
		shdwm[i].blendMode = "alpha";
		loader[i].mask = _mask[i];
		shdw[i].mask = _smask[i];
		_mc[i] = new MovieClip;
		_mc[i].addChild(shdw[i]);
		_mc[i].addChild(_smask[i]);
		_mc[i].addChild(shdwm[i]);
		_mc[i].blendMode = BlendMode.LAYER;
		_mc[i].blendMode = "layer";
		_mc[i].y = 45;
		_mc[i].scaleY = -1;
		var rota:int = 360/maxobj;  //初期角度
		rot[i]= rota*i;
		mc[i] = new MovieClip;
		mc[i].addChild(loader[i]);
		mc[i].addChild(_mask[i]);
		mc[i].addChild(_mc[i]);
		addChildAt(mc[i],i);
	}
}

function enfe(e) {
	for (i=0; i<maxobj; i++) {
		rot[i] +=1;
		if (rot[i]>360) {
			rot[i] -=360;
		}
		rad=rot[i]*Math.PI/180;
		mc[i].x =175 + Math.cos(rad)*xrad;  //数値 x軸 位置と半径
		mc[i].y=20 + Math.sin(rad)*yrad;  //数値 y軸 位置と半径
		mc[i].scaleX = mc[i].scaleY=mc[i].y/50;
		if (mc[i].scaleY<0.5) {
			mc[i].scaleX = mc[i].scaleY = 0.5;
		}
		if (mc[i].y<20) {
			mc[i].alpha =mc[i].y/20;
		} else {
			mc[i].alpha = 1.0;
		}
		if (mc[i].scaleX >0.6) {  //深度 0.6不確定
			addChildAt(mc[i],maxobj);
		}
		if (mc[i].alpha==0.0) {
			addChildAt(mc[i],0);
		}
	}
}
function loaderinit(p) {
	for (i=0; i<maxobj; i++) {
		if (loader[i].root) {
			loader[i].width = 135;
			loader[i].height = 45;
		}
		if (shdw[i].root) {
			shdw[i].width = 135;
			shdw[i].height = 45;
		}
	}
}

textloader.addEventListener(Event.COMPLETE,showText);
textloader.load(new URLRequest("text.txt"));
timer.addEventListener(TimerEvent.TIMER,enfe);
timer.start();