バナー回転
トンボ鉛筆の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();