Rotator zdjęć oraz banerów w ActionScript 3 - wersja podstawowa
Skrypt tworzy gotowy rotator banerów Flash, obrazy są pobierane z pliku XML, oraz co każde 3 sekundy następują przejścia.
Każdy banner posiada również zdanię opisu oraz odnośnik na stronę po kliknięciu na niego.
Wersja On-line:
Skrypt wklejamy do pierwszej klatki filmu, aby jednak on zadziała należy utworzyć: pole dynamiczne o nazwie: opis_txt, klip filmowy o nazwie szablon_mc, oraz klip o nazwie loading_mc, które zawiera pole dynamiczne o nazwie pole_loading_txt .
Ten przykład wykorzystuje biblioteke Tween Lite Basic, którą można pobrać tutaj: [ pobierz ]
Listing
import gs.TweenLite;
import gs.easing.*;
var centrumX:Number = stage.width / 4;
var centrumY:Number = stage.height / 4;
var rotator:Timer = new Timer(3000);
var obrazLoader:Loader = new Loader();
var aktualny_obraz:Number = 0;
var obraz_data:BitmapData;
var obrazy:Array = new Array();
rotator.addEventListener(TimerEvent.TIMER, wczytanie_baneru);
var plikXML:URLRequest = new URLRequest("obrazki.xml");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, plik_wczytany);
loader.addEventListener(ProgressEvent.PROGRESS, ladowanieXML);
loader.load(plikXML);
var banery:XML = new XML();
banery.ignoreWhitespace = true;
var xmlList:XMLList;
var sciezki:Array = new Array();
var opisy:Array = new Array();
var odnosniki:Array = new Array();
var procent:String;
function ladowanieXML(e:ProgressEvent):void {
loading_mc.alpha = 1;
procent = (Math.floor(e.bytesLoaded / e.bytesTotal * 100)).toString();
loading_mc.pole_loading_txt.text = "Ładowanie Pliku XML: "+procent+"%";
}
function plik_wczytany(e:Event):void {
loading_mc.pole_loading_txt.text = "";
banery = XML(e.target.data);
xmlList = banery.children();
for (var i:int=0; i<xmlList.length(); i++) {
sciezki.push(xmlList.@adres[i]);
opisy.push(xmlList.@opis[i]);
odnosniki.push(xmlList.@odnosnik[i]);
}
szablon_mc.useHandCursor = true;
wczytanie_baneru(null);
}
function wczytanie_baneru(e:TimerEvent):void {
if (aktualny_obraz == sciezki.length) {
aktualny_obraz = 0;
}
rotator.stop();
szablon_mc.alpha = 0.4;
TweenLite.to(szablon_mc, 0.5, {alpha:1});
var pojemnik:MovieClip = new MovieClip();
opis_txt.text = opisy[aktualny_obraz];
pojemnik.odnosnik = odnosniki[aktualny_obraz];
szablon_mc.addEventListener(MouseEvent.MOUSE_DOWN, przekierowanie_URL);
if (obrazy[aktualny_obraz] == null) {
var obraz:URLRequest = new URLRequest(sciezki[aktualny_obraz]);
obrazLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, wyswietlenie_zdjecia);
obrazLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, wczytywanie_obrazu);
obrazLoader.load(obraz);
} else {
obrazLoader = obrazy[aktualny_obraz]
wyswietlenie_zdjecia(null);
}
}
function wczytywanie_obrazu(e:ProgressEvent):void {
if (obrazy[aktualny_obraz] == null ) {
TweenLite.to(loading_mc, 0.5, {alpha:1});
}
procent = (Math.floor(e.bytesLoaded / e.bytesTotal * 100)).toString();
loading_mc.pole_loading_txt.text ="Ładowanie obrazu: "+procent+"%";
}
function przekierowanie_URL(e:MouseEvent):void {
navigateToURL(new URLRequest(odnosniki[aktualny_obraz]), '_blank');
}
function wyswietlenie_zdjecia(e:Event):void {
TweenLite.to(loading_mc, 0.5, {alpha:0});
loading_mc.pole_loading_txt.text = "";
szablon_mc.addChild(obrazLoader);
if (obrazy[aktualny_obraz] == null ) {
obrazy.push(obrazLoader);
obrazLoader = new Loader();
}
rotator.start();
aktualny_obraz++;
}
//KOD XML:
<?xml version="1.0" encoding="utf-8"?>
<obrazy>
<banner adres="obrazki/banner_01.jpg" opis="Miasto uniwersyteckie w zachodniej Walii - Aberystwyth" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_02.jpg" opis="Ogrody walijskie podczas lata" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_03.jpg" opis="Widok jeziora podczas poranku" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_04.jpg" opis="Jamnik o imieniu - Cookie ~ (ang. Ciasteczko)" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_05.jpg" opis="Uchwycenie 'efektu' motyla na łodydze" odnosnik="http://Funkcje.net" />
</obrazy>
import gs.easing.*;
var centrumX:Number = stage.width / 4;
var centrumY:Number = stage.height / 4;
var rotator:Timer = new Timer(3000);
var obrazLoader:Loader = new Loader();
var aktualny_obraz:Number = 0;
var obraz_data:BitmapData;
var obrazy:Array = new Array();
rotator.addEventListener(TimerEvent.TIMER, wczytanie_baneru);
var plikXML:URLRequest = new URLRequest("obrazki.xml");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, plik_wczytany);
loader.addEventListener(ProgressEvent.PROGRESS, ladowanieXML);
loader.load(plikXML);
var banery:XML = new XML();
banery.ignoreWhitespace = true;
var xmlList:XMLList;
var sciezki:Array = new Array();
var opisy:Array = new Array();
var odnosniki:Array = new Array();
var procent:String;
function ladowanieXML(e:ProgressEvent):void {
loading_mc.alpha = 1;
procent = (Math.floor(e.bytesLoaded / e.bytesTotal * 100)).toString();
loading_mc.pole_loading_txt.text = "Ładowanie Pliku XML: "+procent+"%";
}
function plik_wczytany(e:Event):void {
loading_mc.pole_loading_txt.text = "";
banery = XML(e.target.data);
xmlList = banery.children();
for (var i:int=0; i<xmlList.length(); i++) {
sciezki.push(xmlList.@adres[i]);
opisy.push(xmlList.@opis[i]);
odnosniki.push(xmlList.@odnosnik[i]);
}
szablon_mc.useHandCursor = true;
wczytanie_baneru(null);
}
function wczytanie_baneru(e:TimerEvent):void {
if (aktualny_obraz == sciezki.length) {
aktualny_obraz = 0;
}
rotator.stop();
szablon_mc.alpha = 0.4;
TweenLite.to(szablon_mc, 0.5, {alpha:1});
var pojemnik:MovieClip = new MovieClip();
opis_txt.text = opisy[aktualny_obraz];
pojemnik.odnosnik = odnosniki[aktualny_obraz];
szablon_mc.addEventListener(MouseEvent.MOUSE_DOWN, przekierowanie_URL);
if (obrazy[aktualny_obraz] == null) {
var obraz:URLRequest = new URLRequest(sciezki[aktualny_obraz]);
obrazLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, wyswietlenie_zdjecia);
obrazLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, wczytywanie_obrazu);
obrazLoader.load(obraz);
} else {
obrazLoader = obrazy[aktualny_obraz]
wyswietlenie_zdjecia(null);
}
}
function wczytywanie_obrazu(e:ProgressEvent):void {
if (obrazy[aktualny_obraz] == null ) {
TweenLite.to(loading_mc, 0.5, {alpha:1});
}
procent = (Math.floor(e.bytesLoaded / e.bytesTotal * 100)).toString();
loading_mc.pole_loading_txt.text ="Ładowanie obrazu: "+procent+"%";
}
function przekierowanie_URL(e:MouseEvent):void {
navigateToURL(new URLRequest(odnosniki[aktualny_obraz]), '_blank');
}
function wyswietlenie_zdjecia(e:Event):void {
TweenLite.to(loading_mc, 0.5, {alpha:0});
loading_mc.pole_loading_txt.text = "";
szablon_mc.addChild(obrazLoader);
if (obrazy[aktualny_obraz] == null ) {
obrazy.push(obrazLoader);
obrazLoader = new Loader();
}
rotator.start();
aktualny_obraz++;
}
//KOD XML:
<?xml version="1.0" encoding="utf-8"?>
<obrazy>
<banner adres="obrazki/banner_01.jpg" opis="Miasto uniwersyteckie w zachodniej Walii - Aberystwyth" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_02.jpg" opis="Ogrody walijskie podczas lata" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_03.jpg" opis="Widok jeziora podczas poranku" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_04.jpg" opis="Jamnik o imieniu - Cookie ~ (ang. Ciasteczko)" odnosnik="http://Funkcje.net" />
<banner adres="obrazki/banner_05.jpg" opis="Uchwycenie 'efektu' motyla na łodydze" odnosnik="http://Funkcje.net" />
</obrazy>
Dodano przez: divix
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno