コンテンツスライダーのソース
myscreenというメイン画面のmcを置いてます。フレームアクション1枚で書いてます(素人ww)
あーまた変数名がアホっぽい…まあいいや。
Tweenerで移動時の処理が激ラク。
xmlで画像・リンク先だけでなく、自動スライドのオンオフやタイミングもできるようにした。
swfとxmlあわせて配布するにはもう少し洗練したい。ちなみにサイズは640*250あたり考えてます。(バナーは5個)
他にも、バナー無しでappleのiTunesStoreのスライドみたいに●とか■とかででも出来るバージョンも用意したいな。
import caurina.transitions.Tweener; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.events.TimerEvent; import flash.utils.Timer; var xmlurl = new URLRequest("ini.xml"); var url_loader :URLLoader = new URLLoader(xmlurl); var currentMC:MovieClip = new waku(); var curr:int = 0; var myTimer:Timer; var urlArray:Array = new Array(); var mainArray:Array = new Array(); var iconArray:Array = new Array(); var timerflag; myscreen.addEventListener(MouseEvent.CLICK, urlClick); myscreen.buttonMode = true; url_loader.addEventListener (Event.COMPLETE,LoaderInfoCompleteFunc); function LoaderInfoCompleteFunc (event : Event) { var xml : XML = new XML(url_loader.data); timerflag = xml.timer.@on; if( timerflag == true){ var timersec:Number = xml.timer.@speed; myTimer = new Timer(timersec,1); myTimer.addEventListener(TimerEvent.TIMER_COMPLETE,autoslide); } for(var i=0; i< 3; i++){ mainArray.push(xml.item[i].@main); iconArray.push(xml.item[i].@icon); urlArray.push(xml.item[i].@url); } playscreen(); } function playscreen():void { for(var i:int=0; i< 3 ; i++){ var myInstance:MovieClip = new sbtn(); addChild(myInstance); var loader_obj : Loader = new Loader(); var url : URLRequest = new URLRequest(mainArray[i]); loader_obj.load(url); myscreen.addChild(loader_obj); loader_obj.x = i*535; myInstance.name = String(i); var btn_obj : Loader = new Loader(); var btn_url : URLRequest = new URLRequest(iconArray[i]); btn_obj.load(btn_url); myInstance.addChild(btn_obj); myInstance.x = 3+(i*182); myInstance.y = 300; myInstance.addEventListener(MouseEvent.CLICK, onClickListener); myInstance.buttonMode = true; } addChild(currentMC); currentMC.x = 3 + (curr*182); currentMC.y = 300; if( timerflag == true){ myTimer.start(); } } function autoslide(e:TimerEvent):void { curr = curr + 1; if(curr == 3){ curr = 0; } Tweener.addTween(currentMC, {x:3 + (curr*182), y:300, time:1, transition:"easeOutCubic" }); Tweener.addTween(myscreen, {x:7 - (curr*535), y:10, time:1, transition:"easeOutCubic" }); myTimer.start(); } function onClickListener(e:MouseEvent):void{ if( timerflag == true){ myTimer.reset(); } var hikaku:int = int(e.target.parent.name); if(hikaku != curr){ Tweener.addTween(currentMC, {x:3 + (hikaku*182), y:300, time:1, transition:"easeOutCubic" }); Tweener.addTween(myscreen, {x:7 - (hikaku*535), y:10, time:1, transition:"easeOutCubic" }); curr = hikaku; if( timerflag == true){ myTimer.start(); } } } function urlClick(e:MouseEvent):void{ var url_send:URLRequest = new URLRequest( urlArray[curr] ); navigateToURL(url_send); }
で、xmlは
<?xml version="1.0" encoding="UTF-8" ?> <data> <timer on="true" speed="5000" /> <item main="photo1.jpg" icon="btn1.jpg" url="http://www.yahoo.co.jp" /> <item main="photo2.jpg" icon="btn2.jpg" url="http://www.google.co.jp" /> <item main="photo3.jpg" icon="btn3.jpg" url="http://www.amazon.co.jp" /> </data>