Karuzela 3d w ActionScript 2.0 + XML - wersja zaawansowana
7. Posumowanie kodu
Cały kod, dla łatwości, został spisany w jednym miejscu.
Dalsza czê¶æ: 1 2 3 4 5 6 7
Listing
/////////////////////////////////////////////
//////////// KONTROLER SKRYPTU /////////////
///////////////////////////////////////////
//Określ dostęp do pliku XML /////////////
//////////////////////////////////////////
var sciezka_do_pliku_XML = "obrazki.xml";
///////////////////////////////////////////
//Określ parametry dla karuzeli ///////////
//////////////////////////////////////////
var szerokoscKaruzeli:Number = 230; //////
var wysokoscKaruzeli:Number = 55; ///////
var predkosc:Number = 0.05; ////////////
var perspektywa:Number = 130; //////////
var przyspieszenie:Number = 1500; //////
//skrypt pobrany ze strony: http://Funkcje.net
//////////////NIE DO EDYCJI /////////////////
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
var iloscProduktow:Number;
var centrumX:Number = Stage.width / 2;
var centrumY:Number = Stage.height / 2;
var home:MovieClip = this;
var procent:Number;
var wew_procent:Number;
var i:Number = 0;
paragraf_txt._alpha = 0;
var opis_mc:MovieClip = this.attachMovie("opis", "opis", 10000);
opis_mc._alpha = 0;
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
var produkty = this.firstChild.childNodes;
iloscProduktow = produkty.length;
for(var i=0; i<iloscProduktow; i++) {
var produkt = home.attachMovie("ikona","ikona"+i,i+1);
produkt.kat = i * ((Math.PI*2)/iloscProduktow); //kąt
produkt.onEnterFrame = poruszanie;
produkt.opisText = produkty[i].attributes.opis;
produkt.ikona_mc.szablon_mc.loadMovie(produkty[i].attributes.adres);
produkt.odbicie_mc.szablon_mc.loadMovie(produkty[i].attributes.adres);
produkt.odnosnik = produkty[i].attributes.odnosnik;
produkt.ikona_mc.onRollOver = najechanie;
produkt.ikona_mc.onRollOut = zjechanie;
produkt.ikona_mc.onRelease = klikniecie;
}
}
function najechanie() {
home.opis_mc.opis_txt.text = this._parent.opisText;
home.opis_mc._x = this._parent._x;
home.opis_mc._y = this._parent._y - this._parent._height/2;
home.opis_mc.onEnterFrame = Delegate.create(this, loop);
home.opis_mc._alpha = 100;
}
function zjechanie() {
delete home.opis_mc.onEnterFrame;
home.opis_mc._alpha = 0;
}
function klikniecie() {
for (var i=0; i<iloscProduktow; i++) {
var produkt:MovieClip = home["ikona"+i];
produkt._xPozycja = produkt._x;
produkt._yPozycja = produkt._y;
produkt.skala = produkt._xscale;
delete produkt.ikona_mc.onRollOver;
delete produkt.ikona_mc.onRollOut;
delete produkt.ikona_mc.onRelease;
delete produkt.onEnterFrame;
if(produkt != this._parent) {
var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, produkt._xscale, 0, 1, true);
var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, produkt._yscale, 0, 1, true);
var tw3:Tween = new Tween(produkt, "_alpha", Strong.easeOut, 100, 0, 1, true);
} else {
var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, produkt._xscale, 100, 1, true);
var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, produkt._yscale, 100, 1, true);
var tw3:Tween = new Tween(produkt, "_x", Strong.easeOut, produkt._x, 100, 1, true);
var tw4:Tween = new Tween(produkt, "_y", Strong.easeOut, produkt._y, 220, 1, true);
var tw5:Tween = new Tween(paragraf_txt, "_alpha", Strong.easeOut, 0, 100, 1, true);
paragraf_txt.text = produkt.odnosnik;
var s:Object = this;
tw.onMotionStopped = function() {
s.onRelease = powrotDoKaruzeli;
}
}
}
}
function loop() {
home.opis._x = this._parent._x;
home.opis._y = this._parent._y - this._parent._height/2;
}
xml.load(sciezka_do_pliku_XML);
function poruszanie() {
if (procent != 100) {
procent = int(xml.getBytesLoaded() / xml.getBytesTotal() * 100);
} else {
loading_mc._visible = false;
}
this._x = Math.cos(this.kat) * szerokoscKaruzeli + centrumX;
this._y = Math.sin(this.kat) * wysokoscKaruzeli + centrumY;
var skala:Number = (this._y - perspektywa) / (centrumY + wysokoscKaruzeli - perspektywa);
this._xscale = this._yscale = skala * 100;
this.kat += this._parent.predkosc;
this.swapDepths(Math.round(this._xscale) + 100);
}
function powrotDoKaruzeli() {
delete this.onRelease;
var tw:Tween = new Tween(paragraf_txt, "_alpha", Strong.easeOut, 100, 0, 0.5, true);
for (var i=0; i<iloscProduktow; i++) {
var produkt:MovieClip = home["ikona"+i];
if(produkt != this._parent) {
var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, 0, produkt.skala, 1, true);
var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, 0, produkt.skala, 1, true);
var tw3:Tween = new Tween(produkt, "_alpha", Strong.easeOut, 0, 100, 1, true);
} else {
var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, 100, produkt.skala, 1, true);
var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, 100, produkt.skala, 1, true);
var tw3:Tween = new Tween(produkt, "_x", Strong.easeOut, produkt._x, produkt._xPozycja, 1, true);
var tw4:Tween = new Tween(produkt, "_y", Strong.easeOut, produkt._y, produkt._yPozycja, 1, true);
tw.onMotionStopped = function() {
for (var i=0; i<iloscProduktow; i++) {
var produkt:MovieClip = home["ikona"+i];
produkt.ikona_mc.onRollOver = Delegate.create(produkt.ikona_mc,najechanie);
produkt.ikona_mc.onRollOut = Delegate.create(produkt.ikona_mc,zjechanie);
produkt.ikona_mc.onRelease = Delegate.create(produkt.ikona_mc,klikniecie);
produkt.onEnterFrame = poruszanie;
}
}
}
}
}
this.onMouseMove = function() {
predkosc = (this._xmouse-centrumX)/przyspieszenie;
}
Dodano przez: divix
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
![](http://funkcje.net/admin/images/kreska.jpg)
:: Wymiana linków
![](http://funkcje.net/images/kreska.jpg)
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